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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)

發布時間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目大概說一個核反應堆的冷卻系統有n個結點,有m條單向的管子連接它們,管子內流量有上下界的要求,問能否使液體在整個系統中循環流動。

本質上就是求一個無源匯流量有上下界的容量網絡的可行流,因為無源匯的容量網絡上各個頂點都滿足流量平衡條件,即所有點的∑流入流量=∑流出流量,可以看成里面的流是循環流動的,類似有向圖歐拉回路。

而帶上下界的網絡可行流的求法,是根據網絡流中一個流是可行流的充分必要條件——限制條件平衡條件,去改造原網絡,轉化成不帶下界的容量網絡來求解的。數學模型那些證明之類的不難理解,見論文《一種簡易的方法求解流量有上下界的網絡中網絡流問題》。

而改造的方式好像有兩種挺流行的,我用的做法是:

  • 設d[u]為頂點u出邊下界和-入邊下界和,新建源點、匯點
  • 原網絡的弧<u,v>容量設置成其上界-下界
  • 對于每一個頂點u,如果d[u]<0則源點向其連容量-d[u]的邊,否則其向匯點連容量d[u]的邊
  • 最后如果和源點相關的弧都滿流則存在可行流,而各條邊的流量+其在原網絡的下界就是一個解
1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<algorithm> 5 using namespace std; 6 #define INF (1<<30) 7 #define MAXN 222 8 #define MAXM 222*444 9 10 struct Edge{ 11 int v,cap,flow,next; 12 }edge[MAXM]; 13 int vs,vt,NE,NV; 14 int head[MAXN]; 15 16 void addEdge(int u,int v,int cap){ 17 edge[NE].v=v; edge[NE].cap=cap; edge[NE].flow=0; 18 edge[NE].next=head[u]; head[u]=NE++; 19 edge[NE].v=u; edge[NE].cap=0; edge[NE].flow=0; 20 edge[NE].next=head[v]; head[v]=NE++; 21 } 22 23 int level[MAXN]; 24 int gap[MAXN]; 25 void bfs(){ 26 memset(level,-1,sizeof(level)); 27 memset(gap,0,sizeof(gap)); 28 level[vt]=0; 29 gap[level[vt]]++; 30 queue<int> que; 31 que.push(vt); 32 while(!que.empty()){ 33 int u=que.front(); que.pop(); 34 for(int i=head[u]; i!=-1; i=edge[i].next){ 35 int v=edge[i].v; 36 if(level[v]!=-1) continue; 37 level[v]=level[u]+1; 38 gap[level[v]]++; 39 que.push(v); 40 } 41 } 42 } 43 44 int pre[MAXN]; 45 int cur[MAXN]; 46 int ISAP(){ 47 bfs(); 48 memset(pre,-1,sizeof(pre)); 49 memcpy(cur,head,sizeof(head)); 50 int u=pre[vs]=vs,flow=0,aug=INF; 51 gap[0]=NV; 52 while(level[vs]<NV){ 53 bool flag=false; 54 for(int &i=cur[u]; i!=-1; i=edge[i].next){ 55 int v=edge[i].v; 56 if(edge[i].cap!=edge[i].flow && level[u]==level[v]+1){ 57 flag=true; 58 pre[v]=u; 59 u=v; 60 //aug=(aug==-1?edge[i].cap:min(aug,edge[i].cap)); 61 aug=min(aug,edge[i].cap-edge[i].flow); 62 if(v==vt){ 63 flow+=aug; 64 for(u=pre[v]; v!=vs; v=u,u=pre[u]){ 65 edge[cur[u]].flow+=aug; 66 edge[cur[u]^1].flow-=aug; 67 } 68 //aug=-1; 69 aug=INF; 70 } 71 break; 72 } 73 } 74 if(flag) continue; 75 int minlevel=NV; 76 for(int i=head[u]; i!=-1; i=edge[i].next){ 77 int v=edge[i].v; 78 if(edge[i].cap!=edge[i].flow && level[v]<minlevel){ 79 minlevel=level[v]; 80 cur[u]=i; 81 } 82 } 83 if(--gap[level[u]]==0) break; 84 level[u]=minlevel+1; 85 gap[level[u]]++; 86 u=pre[u]; 87 } 88 return flow; 89 } 90 int low[MAXM],d[MAXN]; 91 int main(){ 92 int t,n,m,a,b,c; 93 scanf("%d",&t); 94 while(t--){ 95 scanf("%d%d",&n,&m); 96 memset(d,0,sizeof(d)); 97 vs=0; vt=n+1; NV=vt+1; NE=0; 98 memset(head,-1,sizeof(head)); 99 for(int i=0; i<m; ++i){ 100 scanf("%d%d%d%d",&a,&b,low+i,&c); 101 addEdge(a,b,c-low[i]); 102 d[a]+=low[i]; 103 d[b]-=low[i]; 104 } 105 int tot=0; 106 for(int i=1; i<=n; ++i){ 107 if(d[i]<0) addEdge(vs,i,-d[i]); 108 else addEdge(i,vt,d[i]),tot+=d[i]; 109 } 110 if(ISAP()!=tot) puts("NO"); 111 else{ 112 puts("YES"); 113 for(int i=0; i<m; ++i){ 114 printf("%d\n",edge[i<<1].flow+low[i]); 115 } 116 } 117 putchar('\n'); 118 } 119 return 0; 120 }

?

轉載于:https://www.cnblogs.com/WABoss/p/5371871.html

總結

以上是生活随笔為你收集整理的ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91浏览器在线观看 | 国产高清不卡一区 | 久久国产福利 | 伊人黄色网 | 久久久久久国产精品 | 爽好多水快深点欧美视频 | 欧美日韩不卡合集视频 | 亚洲欧美国产精品 | 三级性生活视频 | 无码国产色欲xxxx视频 | 国产偷人妻精品一区二区在线 | 久久福利精品 | 欧美另类xxxx | 亚洲色图36p| 国产盗摄精品 | 午夜视频免费在线 | 黄色片大全 | 免费国产视频在线观看 | 色综合婷婷| 国产国语性生话播放 | 97视频在线观看免费 | 国产国拍精品亚洲 | 亚洲高清资源 | 日韩国产一区二区三区 | av无限看 | 国产免费网址 | 欧美激情一区二区三区四区 | 潘金莲裸体一级淫片视频 | 国产乱子伦精品无码码专区 | 国产精品--色哟哟 | 91丨porny丨首页 | 色屁屁| 三级国产视频 | 国产精品久久久亚洲 | 91最新地址永久入口 | 无套内谢少妇毛片 | 国模小黎自慰gogo人体 | 在线观看免费视频国产 | 亚洲国产av一区二区三区 | 国产日韩精品在线观看 | 久久特级毛片 | 老女人黄色片 | 春色av| 一区二区三区在线观看免费视频 | 亚洲一级免费毛片 | 91免费高清 | 亚洲成人第一网站 | 中国av一区二区 | 一级特黄aaa大片 | www射 | 一级a毛片免费观看久久精品 | 纯爱无遮挡h肉动漫在线播放 | 亚洲一区二区视频在线播放 | 免费国产羞羞网站视频 | 在线观看69 | 激情亚洲网 | 国产视频资源 | 97人人视频 | 男人的天堂一区 | 亚洲无吗在线观看 | 中文字幕在线观看网 | 日本一本一道 | 好吊视频一区二区三区 | 中日韩av电影 | 中文字幕乱码人妻一区二区三区 | 高清一区二区 | 日韩欧美中文字幕精品 | 无码人妻精品一区二区三区99不卡 | 久久午夜精品人妻一区二区三区 | 日日干干 | 91国内精品久久久 | 黄色一级片av | 日本人妻丰满熟妇久久久久久 | 欧美成人精品一区二区男人小说 | 亚洲日本在线播放 | aise爱色av | 国产福利久久 | 美女张开腿让人桶 | 毛片视频网| 狠狠的日| 嫩草午夜少妇在线影视 | 你懂的欧美 | 青青青青青青青青草 | 国产精品午夜未成人免费观看 | 日本少妇色视频 | 亚洲h| 黄视频在线免费看 | 成人在线免费 | 精品国产成人 | 亚洲中文字幕一区二区在线观看 | 国模大尺度视频 | 欧美夫妇交换xxx | 污片在线免费观看 | 真实的国产乱xxxx在线 | 天天操中文字幕 | 91精品啪在线观看国产 | 欧洲金发美女大战黑人 | 欧美破处女 | 久久国产精品免费看 |