日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【loj#2524】【bzoj5303】 [Haoi2018]反色游戏(圆方树)

發布時間:2024/10/12 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【loj#2524】【bzoj5303】 [Haoi2018]反色游戏(圆方树) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  題目傳送門:loj bzoj

  題意中的游戲方案可以轉化為一個異或方程組的解,將邊作為變量,點作為方程,因此若方程有解,方程的解的方案數就是2的自由元個數次方。我們觀察一下方程,就可以發現自由元數量=邊數-點數+連通塊數,或者換句話說,若對原圖的每個聯通塊指定一棵生成樹,那么確定了生成樹之外的邊是否進行操作,那么生成樹內的邊的操作方案就是一定存在并唯一確定的。

  那么我們就只需要判斷一下什么樣的圖無解。我們發現每對一條邊進行操作,原圖內的黑點數量奇偶性不變,那么我們只需判斷圖中的是否存在某個聯通塊有奇數個黑點,若存在即無解。

  加上了刪點操作后,我們可以用圓方樹來維護連通塊信息。因為圓方樹的連通性與原圖上的連通性相互對應,刪除單個點之后,原圖被新分成的連通塊就是圓方樹刪除對應點的連通塊,那么使用圓方樹就可以快速維護刪除單個點的連通塊信息。

  代碼:

#include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<algorithm> #define ll long long #define inf 0x3f3f3f3f #define mod 1000000007 #define maxn 200010 inline ll read() {ll x=0; char c=getchar(),f=1;for(;c<'0'||'9'<c;c=getchar())if(c=='-')f=-1;for(;'0'<=c&&c<='9';c=getchar())x=x*10+c-'0';return x*f; } inline void write(ll x) {static int buf[20],len; len=0;if(x<0)x=-x,putchar('-');for(;x;x/=10)buf[len++]=x%10;if(!len)putchar('0');else while(len)putchar(buf[--len]+'0'); } inline void writeln(ll x){write(x); putchar('\n');} inline void writesp(ll x){write(x); putchar(' ');} struct edge{int to,nxt; }; struct Graph{edge e[4*maxn];int fir[2*maxn],deg[2*maxn];int tot;inline void clear(){memset(fir,255,sizeof(fir)); tot=0;memset(deg,0,sizeof(deg));}inline void add_edge(int x,int y){e[tot].to=y; e[tot].nxt=fir[x]; fir[x]=tot++;++deg[x];} }G,T; int dfn[maxn],low[maxn],st[maxn],ans[maxn]; int val[2*maxn],size[2*maxn],fa[2*maxn],rt[2*maxn]; char s[maxn]; int n,m,tot,tp,cnt; inline ll power(ll a,ll b) {ll ans=1;for(;b;b>>=1,a=a*a%mod)if(b&1)ans=ans*a%mod;return ans; } void tarjan(int now,int last) {dfn[now]=low[now]=++tot; st[++tp]=now;for(int i=G.fir[now];~i;i=G.e[i].nxt)if(i!=(last^1)){if(!dfn[G.e[i].to]){tarjan(G.e[i].to,i);low[now]=std::min(low[now],low[G.e[i].to]);if(low[G.e[i].to]>=dfn[now]){++cnt;T.add_edge(now,cnt); T.add_edge(cnt,now);do{T.add_edge(st[tp],cnt); T.add_edge(cnt,st[tp]);}while(st[tp--]!=G.e[i].to);}}else low[now]=std::min(low[now],dfn[G.e[i].to]);} } void dfs(int now,int root) {rt[now]=root;size[now]=val[now];for(int i=T.fir[now];~i;i=T.e[i].nxt)if(T.e[i].to!=fa[now]){fa[T.e[i].to]=now;dfs(T.e[i].to,root);size[now]+=size[T.e[i].to];} } void work() {n=read(); m=read();G.clear();for(int i=1;i<=m;i++){int x=read(),y=read();G.add_edge(x,y); G.add_edge(y,x);}scanf("%s",s);memset(val,0,sizeof(val));for(int i=1;i<=n;i++)val[i]=(s[i-1]=='1');T.clear();memset(dfn,0,sizeof(dfn));memset(low,0,sizeof(low));tot=tp=0; cnt=n;for(int i=1;i<=n;i++)if(!dfn[i]){tarjan(i,-1);fa[i]=-1;dfs(i,i);}int odd=0,block=0;for(int i=1;i<=n;i++)if(fa[i]==-1)odd+=(size[i]&1),++block;ans[0]=(odd?0:power(2,m-n+block));for(int i=1;i<=n;i++){odd-=(size[rt[i]]&1);int flag=1;for(int j=T.fir[i];~j;j=T.e[j].nxt)if(T.e[j].to!=fa[i]&&(size[T.e[j].to]&1)){flag=0; break;}if(odd||!flag||((size[rt[i]]-size[i])&1))ans[i]=0;else ans[i]=power(2,(m-G.deg[i])-(n-1)+(block+T.deg[i]-1));odd+=(size[rt[i]]&1);}for(int i=0;i<=n;i++)writesp(ans[i]);putchar('\n'); } int main() {int T=read();while(T--)work();return 0; } 反色游戲

?

轉載于:https://www.cnblogs.com/quzhizhou/p/11483149.html

總結

以上是生活随笔為你收集整理的【loj#2524】【bzoj5303】 [Haoi2018]反色游戏(圆方树)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲一区二区三区四区不卡 | 日韩欧美一区二区免费 | 欧美黄色录像视频 | 亚洲精品国产精品乱码不99热 | 日韩在线一二三 | 里番精品3d一二三区 | 天天摸天天做天天爽水多 | 午夜亚洲av永久无码精品 | 韩国一级一片高清免费观看 | 亚洲丝袜天堂 | 外国黄色网| 精品国产理论 | 久久福利视频导航 | 欧美99视频| 成人国产精品蜜柚视频 | 伦av综合一区 | 伊人青青操 | av在线超碰| 久久噜噜噜精品国产亚洲综合 | 一区二区网站 | 亚洲看片| 欧美特级黄色片 | 成人v片 | 第一色网站 | 国产激情网站 | 久久网站免费看 | 天天舔天天操天天干 | 秋霞影院午夜老牛影院 | 97自拍偷拍视频 | 国产成人精品一区二区三区视频 | 欧美专区在线观看 | 日韩免费黄色片 | 永久免费国产 | 黄色网络在线观看 | 亚洲啪啪网址 | 久久国产片 | 1769国产精品视频 | 亚洲久久久久 | 99视频99 | 亚洲美女视频一区 | 俄罗斯av片 | 国产精品久久久久久久久久久久久久久久 | 精品女同一区二区三区 | 亚洲三级电影 | www.超碰 | 亚洲免费在线观看 | 日韩avxxx | 亚洲一区二区在线看 | 日本狠狠爱 | 狠狠综合网 | 国产精品日韩在线观看 | 狠狠干2017| 久久国产精| 国产亚洲女人久久久久毛片 | 太久av| 亚洲欧洲久久久 | 国产高清av | 中文字幕丝袜 | 操操网 | 国产精品第三页 | 日日操夜夜撸 | 成人97 | 亚洲中文字幕无码av | 国产成人在线观看免费网站 | 久久av高潮av无av萌白 | 牛牛影视一区二区三区 | 亚洲制服丝袜在线播放 | 污网站在线播放 | 影音先锋男人天堂 | 中文字幕在线看片 | 久热草 | 不卡一区二区在线 | 丁香七月激情 | 福利在线视频导航 | 男女视频网站 | 国内露脸中年夫妇交换 | 超碰成人久久 | 樱花影院最新免费观看攻略 | 狠狠艹视频 | 日本va欧美va国产激情 | 亚洲成人福利在线 | mm131美女视频 | 一道本无吗一区 | 中国毛片在线观看 | 日韩爱爱片 | 精品在线观看视频 | 亚洲国产一区二区在线 | 欧美专区在线播放 | 91观看视频 | 国产欧美日韩精品区一区二污污污 | 免费看国产黄色片 | 欧美精品日韩少妇 | 高清毛片aaaaaaaaa片 | 无码少妇一级AV片在线观看 | 婷婷丁香花五月天 | 久久99伊人 | 久热99| a天堂中文网 | 宅男深夜视频 |