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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[BZOJ3698]XWW的难题(有源汇有上下界的最大流)

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BZOJ3698]XWW的难题(有源汇有上下界的最大流) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

傳送門

題解

最大流和可行流的做法的區別:先ss->tt做一遍最大流,判斷是否可行;然后將t->s,inf這條邊去掉,再做一遍s->t的最大流,即為答案
這道題原圖的建圖方法是:
對于每一行i,s->i,[a(i,n),a(i,n)+1]
對于每一列j,j->t,[a(n,j),a(n,j)+1]
對于每一個點(i,j),i->j,[a(i,j),a(i,j)+1]
然后再按照有源匯有上下界對這個圖進行改造即可

代碼

#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> using namespace std; #define N 100005 #define inf 1000000000int n,s,t,ss,tt,maxflow,in,out,ans; double a[105][105]; int l[105][105],r[105][105],p[105][105]; int tot,point[N],nxt[N],v[N],remain[N]; int d[N],deep[N],last[N],cur[N],num[N]; queue <int> q;void addedge(int x,int y,int cap) {++tot; nxt[tot]=point[x]; point[x]=tot; v[tot]=y; remain[tot]=cap;++tot; nxt[tot]=point[y]; point[y]=tot; v[tot]=x; remain[tot]=0; } void bfs(int t) {for (int i=1;i<=t;++i) deep[i]=t;deep[t]=0;for (int i=1;i<=t;++i) cur[i]=point[i];while (!q.empty()) q.pop();q.push(t);while (!q.empty()){int now=q.front();q.pop();for (int i=point[now];i!=-1;i=nxt[i])if (deep[v[i]]==t&&remain[i^1]){deep[v[i]]=deep[now]+1;q.push(v[i]);}} } int addflow(int s,int t) {int now=t,ans=inf;while (now!=s){ans=min(ans,remain[last[now]]);now=v[last[now]^1];}now=t;while (now!=s){remain[last[now]]-=ans;remain[last[now]^1]+=ans;now=v[last[now]^1];}return ans; } void isap(int s,int t) {bfs(t);for (int i=1;i<=t;++i) ++num[deep[i]];int now=s;while (deep[s]<t){if (now==t){maxflow+=addflow(s,t);now=s;}bool has_find=false;for (int i=cur[now];i!=-1;i=nxt[i])if (deep[v[i]]+1==deep[now]&&remain[i]){has_find=true;cur[now]=i;last[v[i]]=i;now=v[i];break;}if (!has_find){int minn=t-1;for (int i=point[now];i!=-1;i=nxt[i])if (remain[i]) minn=min(minn,deep[v[i]]);if (!(--num[deep[now]])) break;++num[deep[now]=minn+1];cur[now]=point[now];if (now!=s) now=v[last[now]^1];}} } int main() {tot=-1;memset(point,-1,sizeof(point));scanf("%d",&n);for (int i=1;i<=n;++i)for (int j=1;j<=n;++j){scanf("%lf",&a[i][j]);l[i][j]=floor(a[i][j]);r[i][j]=ceil(a[i][j]);}s=n+n+1,t=s+1,ss=t+1,tt=ss+1;for (int i=1;i<n;++i){addedge(s,i,r[i][n]-l[i][n]);d[s]-=l[i][n],d[i]+=l[i][n];addedge(n+i,t,r[n][i]-l[n][i]);d[n+i]-=l[n][i],d[t]+=l[n][i];}for (int i=1;i<n;++i)for (int j=1;j<n;++j){addedge(i,n+j,r[i][j]-l[i][j]);p[i][j]=tot;d[i]-=l[i][j],d[n+j]+=l[i][j];}for (int i=1;i<=t;++i){if (d[i]>0) addedge(ss,i,d[i]),in+=d[i];if (d[i]<0) addedge(i,tt,-d[i]),out-=d[i];}addedge(t,s,inf);if (in!=out) {puts("NO");return 0;}isap(ss,tt);if (maxflow!=in) {puts("NO");return 0;}remain[tot]=remain[tot^1]=0;isap(s,t);for (int i=1;i<n;++i)for (int j=1;j<n;++j)ans+=remain[p[i][j]]+l[i][j];printf("%d\n",ans*3);return 0; }

總結

以上是生活随笔為你收集整理的[BZOJ3698]XWW的难题(有源汇有上下界的最大流)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本电车痴汉 | 一级片久久久久 | 91在线高清 | 三级4级全黄60分钟 成人自拍视频 | 夜夜嗨av色一区二区不卡 | 少妇厨房愉情理伦bd在线观看 | 神马午夜激情 | 五月天婷婷综合 | 人妻一区二区三 | 三级黄色在线 | 亚洲熟女一区二区 | 日本69熟 | 爱涩av | 超碰97av| 日韩欧美成人一区 | 热热久 | 热热色av| 九九99精品视频 | 任你操精品 | 天堂av手机版 | 操你啦免费视频 | 四虎永久免费在线观看 | 婷婷丁香激情 | www.成人网| 久久在线免费观看视频 | 无限资源日本好片 | 成人精品在线播放 | 午夜精品久久久久久久四虎美女版 | 国产午夜影院 | 中午字幕在线观看 | 免费不卡的av | 91直接看 | 五月花成人网 | 国产精品 色 | 131mm少妇做爰视频 | 东北女人啪啪ⅹxx对白 | 日韩精品视频久久 | 黄色国产网站 | 69av视频在线观看 | 成人羞羞国产免费动态 | 91久久久久久 | 日韩成人在线影院 | 午夜天堂网 | 永久免费看黄网站 | 欧美一区二区三区的 | 亚洲激情欧美激情 | 国产黄网在线观看 | 成人av自拍 | 秋霞欧美在线观看 | 影音先锋精品 | 人人射人人爽 | 成人三级电影网站 | 哺乳喂奶一二三区乳 | 开心激情五月网 | xxx一区二区| 久草国产在线观看 | 一区二区三区在线播放视频 | 日韩精品第一区 | 一区二区三区中文视频 | av手机在线免费观看 | 日韩最新视频 | 欧美日韩在线免费 | 免费成人深夜夜行p站 | 亚洲精品2 | 色天天| 蜜臀久久99精品久久久久久 | 亚洲爱av| 国产高清精品一区二区三区 | 日韩精品视频免费在线观看 | 天天干人人| 久久草精品 | 日本网站在线播放 | 国产中文字幕在线视频 | 99视频在线观看视频 | 久久永久视频 | 免费天堂av| 国产精品日韩精品 | 精品黑人一区二区三区观看时间 | 亚洲成人午夜影院 | 亚洲 小说区 图片区 | 少妇户外露出[11p] | 国产精品视频免费观看 | 超碰97在线免费 | 欧美人体视频一区二区三区 | 欧美午夜视频 | 一女双乳被两男吸视频 | 麻豆视频在线观看免费网站 | 日本一区二区人妻 | 成人无码久久久久毛片 | 国产激情av| 91玉足脚交嫩脚丫在线播放 | 欧美亚洲一区二区在线观看 | 色老头在线视频 | 丁香一区二区三区 | 巨胸爆乳美女露双奶头挤奶 | 国产又大又粗又爽 | 99激情视频 | 岛国二区三区 | 亚洲免费毛片 |