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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

CF 546E(最大流

發布時間:2025/4/9 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CF 546E(最大流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:城市間有若干條道路,士兵可以經過道路到相鄰的城市,現在給定初始每個城鎮的士兵數目和最終的數目,問是否可以達到最終局面。

思路:關鍵是建圖,首先從源點到初始城鎮連邊,然后把有邊的初始城鎮和結束城鎮連邊,最后把結束城鎮和匯點連邊,這樣就可以保證題目中的“每個士兵最多經過一條道路”的條件,然后求出最大流,如果與城鎮總人數相等,那么就有解。輸出解的時候只需要把反向邊的流量輸出即可。

#include<iostream> #include<map> #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<vector> #include<queue> #include<stack> #include<functional> #include<set> #include<cmath> #define pb push_back #define fs first #define se second #define sq(x) (x)*(x) #define eps 0.0000000001 #define IINF (1<<30) using namespace std; typedef long long ll; typedef pair<ll,ll> P; const int maxv=105*4; struct EDGE{int to,cap,rev;EDGE(int t,int c,int r){to=t,cap=c,rev=r;} }; vector<EDGE> G[maxv]; void addedge(int f,int t,int c){G[f].pb(EDGE(t,c,G[t].size()));G[t].pb(EDGE(f,0,G[f].size()-1)); } int level[maxv],iter[maxv]; queue<int> Q; void bfs(int s){memset(level,-1,sizeof level);level[s]=0;Q.push(s);while(!Q.empty()){int v=Q.front();Q.pop();for(int i=0;i<G[v].size();i++){EDGE &e=G[v][i];if(e.cap>0&&level[e.to]<0){level[e.to]=level[v]+1;Q.push(e.to);}}} } int dfs(int v,int t,int f){if(v==t) return f;for(int &i=iter[v];i<G[v].size();i++){EDGE &e=G[v][i];if(e.cap>0&&level[v]<level[e.to]){int d=dfs(e.to,t,min(f,e.cap));if(d>0){e.cap-=d;G[e.to][e.rev].cap+=d;return d;}}}return 0; } int dinic(int s,int t){int flow=0;while(1){bfs(s);if(level[t]<0) return flow;memset(iter,0,sizeof iter);int f;while((f=dfs(s,t,IINF))>0){flow+=f;}} } int a[maxv],b[maxv]; int n,m; int s=maxv-3,t=maxv-4; int sa=0,sb=0; int out[maxv][maxv]; int main(){freopen("/home/files/CppFiles/in","r",stdin);/* std::ios::sync_with_stdio(false);std::cin.tie(0);*/cin>>n>>m;for(int i=1;i<=n;i++){scanf("%d",a+i);addedge(s,i,a[i]);addedge(i,i+n,IINF);sa+=a[i];}for(int i=1;i<=n;i++){scanf("%d",b+i);addedge(i+n,t,b[i]);sb+=b[i];}for(int i=0;i<m;i++){int p,q;scanf("%d%d",&p,&q);addedge(p,q+n,IINF);addedge(q,p+n,IINF);}int ans=dinic(s,t);for(int i=1;i<=n;i++){for(int j=0;j<G[i].size();j++){EDGE &e=G[i][j];if(e.to-n>n) continue;EDGE &r=G[e.to][e.rev];out[i][e.to-n]=r.cap;}}if(ans==sa&&sa==sb){cout<<"YES"<<endl;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<out[i][j]<<" ";}cout<<endl;}}else{cout<<"NO"<<endl;}return 0; } View Code

?

轉載于:https://www.cnblogs.com/Cw-trip/p/4685945.html

總結

以上是生活随笔為你收集整理的CF 546E(最大流的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产综合久久久 | 法国少妇愉情理伦片 | 日韩性xxxx | 久久影院中文字幕 | 激情视频久久 | 一级全黄少妇性色生活片 | 天天干精品 | 国产视频一区在线 | 男女精品视频 | 在线成人小视频 | 热播网 | wwwxxx在线 | 高潮网址 | 精品自拍一区 | 成人国产片| 男女作爱网站 | 麻豆影视在线 | 91插插插影库永久免费 | 日韩最新av| 中国黄色片子 | 性欧美18一19内谢 | 四虎精品 | 黄色在线视频网址 | 美女无遮挡免费网站 | 亚洲美女自拍偷拍 | 国产噜噜噜噜噜久久久久久久久 | 少妇极品熟妇人妻无码 | 久久综合一区二区三区 | 天天爱天天做 | 激情综合网站 | 青青草原伊人 | 少妇一区二区三区四区 | 中文字幕有码无码人妻av蜜桃 | 亚洲第一天堂网 | 在线免费观看高清视频 | 午夜精品一区二区三区在线视频 | 久久综合操 | 99国产精| 成人娱乐网 | 91亚洲国产精品 | 麻豆精品在线观看 | 日韩不卡在线视频 | 亚洲玖玖爱 | 欧美精品第一页 | 国内久久久久 | 波多野结衣在线影院 | 成人在线观看网 | 久久网亚洲 | 日本视频中文字幕 | 精品在线免费观看视频 | 在线亚洲天堂 | 成人欧美视频在线观看 | 日韩美女中文字幕 | 精品国产欧美 | 日韩精品一区二区在线观看 | 国产毛片视频 | 国产精品视频在线看 | 美国成人免费视频 | 日韩国产欧美在线视频 | 蜜桃色999 | 日本黄在线观看 | 国产91白丝在一线播放 | 久久观看| 免费一级特黄特色毛片久久看 | 中文字幕乱码视频 | 麻豆传媒视频入口 | 欧美亚洲综合一区 | 日韩av一| 中文字幕在线一区 | 有码视频在线观看 | 玖玖视频 | 欧美一级免费看 | 凸凹人妻人人澡人人添 | 骚虎视频在线观看 | 色七七网站 | 国产精品免费视频观看 | 欧美精品一区三区 | 色爽交| 亚洲我射 | 色诱久久av| 精品黄色av | 高清一区二区三区 | 99999av| 91麻豆影院 | 性折磨bdsm欧美激情另类 | 激情视频一区二区三区 | 高清国产一区二区 | 一区二区三区日本视频 | 精品亚洲一区二区三区四区五区高 | 囯产精品久久久久久 | 91看片网站 | 成人免费高清在线播放 | 免费亚洲婷婷 | 91麻豆免费看 | 日韩精品大片 | 久久盗摄| 免费播放片大片 | 国产最新视频 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 |