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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[bzoj2229][Zjoi2011]最小割

發布時間:2025/7/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [bzoj2229][Zjoi2011]最小割 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來自FallDream的博客,未經允許,請勿轉載,謝謝。


?

小白在圖論課上學到了一個新的概念——最小割,下課后小白在筆記本上寫下了如下這段話: “對于一個圖,某個對圖中結點的劃分將圖中所有結點分成兩個部分,如果結點s,t不在同一個部分中,則稱這個劃分是關于s,t的割。 對于帶權圖來說,將所有頂點處在不同部分的邊的權值相加所得到的值定義為這個割的容量,而s,t的最小割指的是在關于s,t的割中容量最小的割” 現給定一張無向圖,小白有若干個形如“圖中有多少對點它們的最小割的容量不超過x呢”的疑問,小藍雖然很想回答這些問題,但小藍最近忙著挖木塊,于是作為仍然是小藍的好友,你又有任務了。

T<=10,n<=150,m<=3000,q<=30

?

最小割樹(分治+最小割)

每次從要分治的部分中選出兩個點求最小割,并且更新與S相連的部分的點和與T相連的部分的點的答案,然后切成兩半分別分治下去即可。

總共分治n次

#include<iostream> #include<cstdio> #include<cstring> #include<vector> #define MN 150 #define INF 2000000000 using namespace std; inline int read() {int x = 0 , f = 1; char ch = getchar();while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; ch = getchar();}while(ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}return x * f; } vector<int> v[MN*MN+5]; bool in[MN+5]; int n,m,head[MN+5],cnt=1,tot=0,d[MN+5],q[MN+5],top,c[MN+5],Ans[MN+5][MN+5],bel[MN+5],S,T; struct edge{int to,next,w,tot;}e[30005]; inline void ins(int f,int t,int w) {e[++cnt]=(edge){t,head[f],w,w};head[f]=cnt;e[++cnt]=(edge){f,head[t],0,0};head[t]=cnt; }void rebuild(){for(int i=2;i<=cnt;++i)e[i].w=e[i].tot;}void Dfs(int x) {v[bel[x]=tot].push_back(x);for(int i=head[x];i;i=e[i].next)if(!bel[e[i].to]) Dfs(e[i].to); }int dfs(int x,int f) {if(x==T) return f;int used=0;for(int&i=c[x];i;i=e[i].next)if(e[i].w&&d[e[i].to]==d[x]+1){int w=dfs(e[i].to,min(f-used,e[i].w));used+=w;e[i].w-=w;e[i^1].w+=w;if(used==f) return used;}return d[x]=-1,used; }bool bfs() {memset(d,0,sizeof(d));int i,j;for(d[q[top=i=1]=S]=1;i<=top;++i)for(j=c[q[i]]=head[q[i]];j;j=e[j].next)if(e[j].w&&!d[e[j].to]) d[q[++top]=e[j].to]=d[q[i]]+1;return d[T]; }void Get(int x) {in[x]=1;for(int i=head[x];i;i=e[i].next)if(!in[e[i].to]&&e[i].w) Get(e[i].to); }void Solve(int now) {if(v[now].size()<2) {v[now].clear();return;}S=v[now][0],T=v[now][1];rebuild();int ans=0;while(bfs()) ans+=dfs(S,INF);memset(in,0,sizeof(in));Get(S);for(int i=1;i<=n;++i)for(int j=i+1;j<=n;++j)if(in[i]^in[j]) Ans[i][j]=min(Ans[i][j],ans);for(int i=1;i<=n;++i)if(bel[i]==now)bel[i]=(in[i]?tot+1:tot+2),v[bel[i]].push_back(i);int pre=tot;tot+=2;Solve(pre+1);Solve(pre+2);v[now].clear(); }int main() {for(int cas=read();cas;--cas){n=read();m=read();cnt=1;tot=0;memset(head,0,sizeof(head));memset(bel,0,sizeof(bel));memset(Ans,127,sizeof(Ans));for(int i=1;i<=m;++i){int x=read(),y=read(),w=read();ins(x,y,w);ins(y,x,w);}for(int i=1;i<=n;++i)if(!bel[i]) ++tot,Dfs(i),Solve(tot);for(int i=1;i<=n;++i)for(int j=i+1;j<=n;++j)Ans[i][j]>INF?Ans[i][j]=0:0;for(int q=read();q;--q){int num=read(),ans=0;for(int i=1;i<n;++i)for(int j=i+1;j<=n;++j)if(Ans[i][j]<=num) ++ans;printf("%d\n",ans); }puts("");}return 0; }

轉載于:https://www.cnblogs.com/FallDream/p/bzoj2229.html

總結

以上是生活随笔為你收集整理的[bzoj2229][Zjoi2011]最小割的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产第113页| 成人激情视频在线 | 香蕉视频亚洲 | 自拍偷拍欧美日韩 | 国产午夜精品在线观看 | 免费久久av | 国产精品igao视频 | 欧美日韩一级片在线观看 | 狠狠干伊人网 | 免费毛片a| 色一情一乱一伦一区二区三区 | 性xxxxxxxxx18欧美 | www.国产一区二区 | 蜜桃成熟时李丽珍在线观看 | 一区二区三区少妇 | 蜜桃成人在线观看 | 日韩在线精品视频一区二区涩爱 | 蜜桃av在线看 | 1000部做爰免费视频 | 人人狠狠综合久久亚洲 | 香蕉视频在线看 | 亚洲字幕 | 一区二区三区视频免费视 | 20日本xxxxxxxxx46 欧美激情一级 | 美日韩在线| av资源在线播放 | 天天干天天操av | 国产探花一区二区 | 国产精品久久久久久久久久久久久久 | 色婷婷精品国产一区二区三区 | 欧美一区在线观看视频 | 亚洲AV无码精品一区二区三区 | 奇米影视在线 | 高清一区二区三区四区 | 大桥未久恸哭の女教师 | 亚洲乱码国产乱码精品精 | 91色在线观看| 5566色| 日本japanese丰满白浆 | а√天堂中文在线资源8 | 亚洲精品久久久乳夜夜欧美 | www日韩精品 | 乱色精品无码一区二区国产盗 | 激情拍拍拍 | 欧洲亚洲激情 | 少妇被躁爽到高潮 | 亚洲欧美校园春色 | 日本成人一区二区三区 | 久久第一页 | 久久久久亚洲av无码专区首jn | 日韩av中文字幕在线播放 | 闫嫩的18sex少妇hd | 亚洲精品乱码久久久久99 | 亚洲熟女综合色一区二区三区 | 日本不卡一区二区在线观看 | 亚洲欧美激情在线观看 | 亚洲欧美第一视频 | 美女三级黄色 | 色视频2 | 欧美一区二区免费视频 | 国产情侣自拍小视频 | 成人国产精品视频 | 午夜影院免费版 | 国产91小视频 | 国产亚洲欧美日韩高清 | 久久中字 | 亚洲理论中文字幕 | 久久91亚洲| 亚洲天天看 | 午夜精品三级久久久有码 | 夜夜嗨一区 | 国产亚洲精品成人av久久ww | 久久久久亚洲无码 | 中文字幕一区二区三区四区 | 伊人伦理| 国语对白对话在线观看 | 国产成年人视频网站 | 天堂影视av | 免费av福利| 免费黄色一区二区 | 亚洲综合在线五月 | 日韩国产第一页 | 色噜噜狠狠一区二区三区果冻 | 岛国精品资源网站 | 免费男女视频 | 国产精品高潮呻吟久久久 | 男人天堂一区二区 | 亚洲国产精品久久AV | 黄色美女av| 欲色视频 | 婷婷俺去也 | 肉番在线观看 | 三级伦理片 | 欧美永久精品 | 亚洲妇熟xx妇色黄蜜桃 | 激情女主播 | 日本一区二区三区久久久久 | 亚洲精品成a人在线观看 | 免费在线观看成人av |