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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【BZOJ】3698:XWW的难题-上下界网络流

發(fā)布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【BZOJ】3698:XWW的难题-上下界网络流 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題解

下界為各數(shù)下取整的值,取差建立超級源匯點SS,TT跑一遍dinic,先判斷是否可以滿流,然后再跑原圖,ans*3(原值算一遍,右邊算一遍,下邊算一遍)
詳見代碼


代碼

#include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define inf 0x7fffffff #define db double using namespace std; db a[102][102]; int n,S,T,SS,TT,tot=1,in[225],d[225],sum,ans; int head[250],cur[250],to[1000005],nxt[1000005],w[1000005]; queue<int>Q; inline void lk(int u,int v,int val) {to[++tot]=v;nxt[tot]=head[u];head[u]=tot;w[tot]=val;} inline int imin(int x,int y){return x>y?y:x;} inline void build() {int i,j;for(i=1;i<=n;++i){if(a[i][n]!=(int)a[i][n]) lk(S,i,1),lk(i,S,0);in[S]-=(int)a[i][n];in[i]+=(int)a[i][n]; }for(i=1;i<=n;++i){if(a[n][i]!=(int)a[n][i]) lk(i+n,T,1),lk(T,i+n,0);in[i+n]-=(int)a[n][i];in[T]+=(int)a[n][i];}for(i=1;i<n;++i)for(j=1;j<n;++j){if(a[i][j]!=(int)a[i][j]) lk(i,j+n,1),lk(j+n,i,0);in[i]-=(int)a[i][j];in[j+n]+=(int)a[i][j];}for(i=1;i<=TT;++i){if(in[i]>0){sum+=in[i];lk(SS,i,in[i]);lk(i,SS,0);}else if(in[i]<0)lk(i,TT,-in[i]),lk(TT,i,0);} }inline bool bfs(int s,int t) {int I,J;for(I=1;I<=TT;++I) d[I]=-1;d[s]=0;Q.push(s);int x;while(!Q.empty()){x=Q.front();Q.pop();for(I=head[x];I;I=nxt[I]){J=to[I];if(d[J]==-1 && w[I]){d[J]=d[x]+1;Q.push(J);}}}return d[t]!=-1?; }inline int dfs(int s,int t,int f) {if(s==t) return f;int ss=0,ret;for(int i=cur[s],j;i;i=nxt[i]){j=to[i];if(d[j]==d[s]+1 && w[i]){ret=f-ss;ret=dfs(j,t,imin(ret,w[i]));w[i]-=ret;w[i^1]+=ret;if(w[i]) cur[s]=i;ss+=ret;if(ss==f) return f;}}if(!ss) d[s]=-1;return ss; }inline void dinic(int s,int t) {while(bfs(s,t)){for(int i=1;i<=TT;++i) cur[i]=head[i];ans+=dfs(s,t,inf);} }int main(){int i,j;scanf("%d",&n);for(i=1;i<=n;++i)for(j=1;j<=n;++j) scanf("%lf",&a[i][j]);S=(n<<1)+1;T=S+1;SS=T+1;TT=SS+1;build();lk(T,S,inf);lk(S,T,0);dinic(SS,TT);if(ans!=sum){printf("NO\n");return 0;}ans=0;dinic(S,T);printf("%d\n",ans*3); }

總結

以上是生活随笔為你收集整理的【BZOJ】3698:XWW的难题-上下界网络流的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲精品国产suv一区 | 成人黄色短视频在线观看 | 国产永久视频 | 爆操91 | 污视频网站免费看 | av色欲无码人妻中文字幕 | 在线成人免费 | 日韩一区在线观看视频 | 欧美一区二区三区在线观看 | 91手机在线视频 | 国产中文字幕在线免费观看 | 99性趣网| jizz成熟丰满老女人 | 伊人91| 日韩资源 | 亚洲国产天堂av | 日韩精品一区在线 | 成人亚洲黄色 | www.youjizz.com在线观看 | 国产黄色自拍 | 双女主黄文 | 精品人妻一区二区三区潮喷在线 | 国产美女免费无遮挡 | 中文字幕1区2区3区 www.com黄色片 | 国产一区免费在线观看 | 久久3p| 国产精品成人久久电影 | 色午夜视频 | a视频免费看 | 深夜福利1000 | 欧美色哟哟 | 免费看黄网站在线 | 人妻一区二区在线 | 亚洲精品6 | 蜜桃精品在线 | 五月婷婷视频 | 九九热视频在线免费观看 | 欧美日本在线视频 | 亚洲色欲色欲www | 96精品视频 | 久久视精品| 成人免费视频一区二区三区 | 午夜精品久久久久久久99老熟妇 | 欧美成人精品激情在线观看 | 精品国产污污免费网站入口 | 三级网站 | 亚洲欧洲成人精品久久一码二码 | 人人超碰97| 黄色在线不卡 | 亚洲精品动漫在线观看 | 视频一区欧美 | 欧美性受xxxx | 欧美精品韩国精品 | 国语一区二区 | 色哒哒影院 | 97精品 | 亚洲欧美乱综合图片区小说区 | 四虎av网站| 操你妹影院 | 成人午夜福利视频 | 欧美日韩在线视频一区二区 | 国产456| 成人啪啪18免费游戏链接 | 丰满多毛的大隂户视频 | 欧美一区二区三区婷婷 | 亚洲欧美日韩成人在线 | 97国产精东麻豆人妻电影 | 久久午夜无码鲁丝片 | 国产专区欧美专区 | 性欧美大战久久久久久久 | www.国产精品 | 成人午夜又粗又硬又大 | 国产成人自拍在线 | 三女同志亚洲人狂欢 | 人人爽人人爽人人片 | 色多多污污 | 一区二区三区精品在线 | 久久综合伊人77777蜜臀 | 菊肠扩张playh | 欧美老女人性视频 | 欧美射射射| 日本亚洲免费 | 国产精品久久久久久久免费看 | 激情午夜天 | 夜夜干天天操 | 欧美男人的天堂 | 日本精品入口免费视频 | 国产 日韩 欧美 制服丝袜 | 日韩性xxxx| 久久久97 | 国产成人亚洲精品自产在线 | 欧美韩国一区 | 国产成人福利在线 | 中国黄色一级视频 | 亚洲xxxxxx| 激情av网站 | 成人综合一区二区 | 波多野结衣国产在线 | 毛利兰被扒开腿做同人漫画 |