亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

[BZOJ3698]XWW的難題(有源匯有上下界的最大流)

2019-11-14 12:40:13
字體:
來源:轉載
供稿:網友

題目描述

傳送門

題解

最大流和可行流的做法的區別:先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];
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品欧美日韩久久| 97视频在线观看免费| 日韩免费中文字幕| 国产精品成人观看视频国产奇米| 久久男人的天堂| 国产一区私人高清影院| 亚洲黄色在线观看| 欧美中文字幕在线播放| 国产女同一区二区| 亚洲人精品午夜在线观看| 国产一区二区三区视频在线观看| 久久久久99精品久久久久| 国产精品成人品| 亚洲r级在线观看| 国产91九色视频| 亚洲性日韩精品一区二区| 国产精品88a∨| 欧美一区二区大胆人体摄影专业网站| 成人乱人伦精品视频在线观看| 国产美女久久精品| 91精品国产高清久久久久久| 亚洲男人的天堂网站| 亚洲乱码国产乱码精品精| 成人疯狂猛交xxx| 日本欧美黄网站| 亚洲精品美女在线观看| 81精品国产乱码久久久久久| 九九热视频这里只有精品| 国产欧美亚洲视频| 97激碰免费视频| 久久精品国产一区二区三区| 亚洲另类xxxx| 欧美成人一二三| 91久久在线视频| 国模私拍一区二区三区| 国产999精品久久久影片官网| 午夜精品久久久久久久久久久久| 91免费人成网站在线观看18| 国产精品999| 欧美丝袜一区二区三区| 国产一区二区成人| 色妞在线综合亚洲欧美| 欧美激情视频一区| 久久精品国产v日韩v亚洲| zzjj国产精品一区二区| 国产一区二区三区网站| 92国产精品久久久久首页| 九九热精品视频在线播放| 中国日韩欧美久久久久久久久| 97免费在线视频| 亚洲国产精品一区二区三区| 色综合久综合久久综合久鬼88| 国产一区二区在线免费视频| 国语自产偷拍精品视频偷| 久久久国产精彩视频美女艺术照福利| 中文字幕欧美日韩精品| 色中色综合影院手机版在线观看| 亚洲综合成人婷婷小说| 日韩欧美综合在线视频| 91av视频在线免费观看| 欧美激情精品久久久久久免费印度| 亚洲欧洲成视频免费观看| 成人激情视频免费在线| 91久久久国产精品| 日韩免费视频在线观看| 国产一区二区三区视频免费| 日韩欧美国产免费播放| 成人国产在线激情| 国产视频欧美视频| 欧美日韩国产成人| www.欧美免费| 日韩成人久久久| 最近更新的2019中文字幕| 日韩在线中文字幕| 亚洲人成网7777777国产| 中文字幕亚洲欧美一区二区三区| 午夜精品福利视频| 中文字幕欧美专区| 久久国产精品影片| 亚洲一区二区三区乱码aⅴ| 久久久久免费精品国产| 亚洲人成绝费网站色www| 91久久久久久国产精品| 亚洲专区在线视频| 欧美日韩一区二区免费在线观看| 欧美综合在线第二页| 啪一啪鲁一鲁2019在线视频| 国产精品久久视频| 亚洲天堂久久av| 亚洲视频综合网| 久久成人18免费网站| 欧美精品在线免费观看| 精品中文字幕视频| 欧美另类老肥妇| 久久视频免费观看| 欧美老女人xx| 国产精品欧美日韩| 日韩一区二区福利| 欧美第一黄网免费网站| 国产一区二区黑人欧美xxxx| 亚洲欧美在线一区二区| 欧美日韩在线观看视频| 中文字幕日本精品| 日韩av成人在线| 日韩视频免费在线| 奇米一区二区三区四区久久| 国产精品久久久久久久久免费| 国产精品盗摄久久久| 97热精品视频官网| 久久乐国产精品| 欧美成人精品xxx| 国产精品美女午夜av| 日韩av在线天堂网| 曰本色欧美视频在线| 欧美大片在线影院| 狠狠躁夜夜躁人人爽超碰91| 欧美日韩国产123| 欧美黑人性生活视频| 8090成年在线看片午夜| 午夜精品久久17c| 成人在线视频福利| 欧美午夜丰满在线18影院| 亚洲激情免费观看| 国产视频久久网| 日韩av中文字幕在线免费观看| 亚洲一区二区三区xxx视频| 久久综合国产精品台湾中文娱乐网| 国产成人精品午夜| 亚洲精品v天堂中文字幕| 2021久久精品国产99国产精品| 欧美成人精品一区| 国产精品女人久久久久久| www.亚洲免费视频| 亚洲欧美日韩国产精品| 国产91ⅴ在线精品免费观看| www高清在线视频日韩欧美| 欧美国产第二页| 亚洲欧洲一区二区三区久久| 久久久久九九九九| 另类专区欧美制服同性| 日韩在线免费视频观看| 日韩在线国产精品| 久久精品国产欧美激情| 亚洲精品电影网站| 国产午夜一区二区| 这里只有精品久久| 欧美国产日韩免费| 亚洲国产欧美一区二区丝袜黑人| 亚洲一区二区久久| 午夜精品在线视频| 97视频在线观看免费高清完整版在线观看| 国产成人亚洲综合91精品| 国产精品视频一区二区高潮| 国产日韩欧美黄色| 在线视频亚洲欧美| 欧美国产日本在线| 国产精品嫩草影院久久久| 色偷偷噜噜噜亚洲男人的天堂| 亚洲天堂av在线免费观看| 欧美xxxx综合视频| 91欧美精品午夜性色福利在线| 日韩av免费在线| 中文.日本.精品| 亚洲在线www|