有源汇上下界最大流,行列建图,下界为ai,ja_{i,j},上界为ai,j+1a_{i,j}+1,跑的飞起。
不要忘记判断上取整下取整相同的情况。

#include<iostream>
#include<cstdio>
#include<cstring>
#define inf 1000000007
#define N 205
#define M 30005
using namespace std;
int n,cnt=1,S,T,SS,TT,total,ans;
int head[N],cur[N],dis[N],q[N],du[N];
int next[M],list[M],key[M];
double a[N>>1][N>>1];
int l[N>>1][N>>1];
inline void insert(int x,int y,int z)
{next[++cnt]=head[x];head[x]=cnt;list[cnt]=y;key[cnt]=z;
}
inline bool BFS(int S,int T)
{int t=0,w=1,x;memset(dis,-1,sizeof(dis));dis[S]=1; q[1]=S;while (t<w){x=q[++t];for (int i=head[x];i;i=next[i])if (key[i]&&dis[list[i]]==-1)dis[q[++w]=list[i]]=dis[x]+1;}return dis[T]!=-1;
}
int find(int x,int flow,int T)
{if (x==T) return flow;int w,used=0;for (int i=cur[x];i;i=next[i])if (key[i]&&dis[list[i]]==dis[x]+1){w=find(list[i],min(flow-used,key[i]),T);key[i]-=w; key[i^1]+=w; used+=w;if (key[i]) cur[x]=i;if (used==flow) return flow;}if (!used) dis[x]=-1;return used;
}
inline int dinic(int S,int T)
{int ans=0;while (BFS(S,T)){for (int i=0;i<=T;i++) cur[i]=head[i];ans+=find(S,inf,T);}return ans;
}
int main()
{scanf("%d",&n); n--; S=0; T=n<<1|1; SS=T+1; TT=T+2;for (int i=1;i<=n+1;i++)for (int j=1;j<=n+1;j++)scanf("%lf",&a[i][j]),l[i][j]=(int)a[i][j];for (int i=1;i<=n;i++){du[i]+=l[i][n+1],du[S]-=l[i][n+1];if (a[i][n+1]!=l[i][n+1]) insert(S,i,1),insert(i,S,0);}for (int i=1;i<=n;i++){du[i+n]-=l[n+1][i],du[T]+=l[n+1][i];if (a[n+1][i]!=l[n+1][i]) insert(i+n,T,1),insert(T,i+n,0);}for (int i=1;i<=n;i++)for (int j=1;j<=n;j++){du[i]-=l[i][j],du[j+n]+=l[i][j];if (a[i][j]!=l[i][j]) insert(i,j+n,1),insert(j+n,i,0);}for (int i=0;i<=T;i++)if (du[i]>0) total+=du[i],insert(SS,i,du[i]),insert(i,SS,0);else if (du[i]<0) insert(i,TT,-du[i]),insert(TT,i,0);insert(T,S,inf); insert(S,T,0);ans=dinic(SS,TT);if (ans!=total) puts("No");else ans=dinic(S,T),printf("%d\n",3*ans);return 0;
}

3698: XWW的难题 有源汇上下界最大流相关推荐

  1. BZOJ.3698.XWW的难题(有源汇上下界最大流ISAP)

    题目链接 按套路行列作为两部分,连边 \(S->row->column->T\). S向代表行的元素连边cap(A[i][n])(容量上下界为上下取整),代表列的元素向T连边cap( ...

  2. 3698: XWW的难题[有源汇上下界最大流]

    3698: XWW的难题 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 354  Solved: 178 [Submit][Status][Disc ...

  3. 【bzoj3698】XWW的难题 有源汇上下界网络流最大流

    Description XWW是个影响力很大的人,他有很多的追随者.这些追随者都想要加入XWW教成为XWW的教徒.但是这并不容易,需要通过XWW的考核. XWW给你出了这么一个难题:XWW给你一个N* ...

  4. Shoot the Bullet(ZOJ3229)(有源汇上下界最大流)

    描述 ensokyo is a world which exists quietly beside ours, separated by a mystical border. It is a utop ...

  5. BZOJ 3698: XWW的难题(有源汇上下界最大流)

    题面 XWW是个影响力很大的人,他有很多的追随者.这些追随者都想要加入XWW教成为XWW的教徒.但是这并不容易,需要通过XWW的考核. XWW给你出了这么一个难题:XWW给你一个N*N的正实数矩阵A, ...

  6. 有上下界网络流 ---- Zoj3229 Shoot the Bullet|东方文花帖|【模板】有源汇上下界最大流

    学习资料+题目链接 题目大意: 模板讲解 #include <bits/stdc++.h> #define mid ((l + r) >> 1) #define Lson rt ...

  7. [BZOJ3698]XWW的难题(有源汇上下界最大流+讲解)

    题目: 我是超链接 题解: 建图的话和有源汇可行流一样 求解方法: 在新图上跑ss到tt的最大流(附加源汇) 若新图满流,那么一定存在一种可行流 记此时∑f(s,i)=sum1∑f(s,i)=sum1 ...

  8. BZOJ 3698 XWW的难题:有上下界的最大流

    传送门 题意 给你一个 $ n*n $ 的正实数矩阵 $ A $ ,满足XWW性. 称一个 $ n*n $ 的矩阵满足XWW性当且仅当: $ A[n][n] = 0 $ 矩阵中每行的最后一个元素等于该 ...

  9. HDU 3157 Crazy Circuits(有源汇上下界最小流)

    HDU 3157 Crazy Circuits 题目链接 题意:一个电路板,上面有N个接线柱(标号1~N),还有两个电源接线柱 + -.给出一些线路,每一个线路有一个下限值求一个能够让全部部件正常工作 ...

最新文章

  1. 【转载】升级OpenSSL修复高危漏洞Heartbleed
  2. 烧流量还是打矩阵,短视频不疯魔不成活?
  3. 中业科技机器人价格_2019年年中盘点:智能扫地机器人十大畅销品牌排名
  4. truncate,delete,drop之间的区别
  5. 【剑指Offer】18树的子结构
  6. 五年引用量最高的10大AI论文:Adam第一,Transformer上榜,竟然没有ResNet?
  7. ebook site
  8. python和循环语句_Python 小白零基础入门 -- 条件语句和循环语句
  9. 【电路仿真】基于matlab Simulink光伏电池仿真模型【含Matlab源码 486期】
  10. python导入win32com.client出错
  11. Euraka配置instanceid显示ip
  12. pic12f1823单片机入门_PIC单片机:如何建立PICKit3程序编写电路
  13. Evo使用过程问题汇总
  14. 蓝桥杯——调手表(python解答)
  15. 数量遗传学 第五章 双亲杂交后代数量性状均值和方差组成
  16. 英语单词: entropy;熵
  17. SAP 损益类科目余额结转到未分配利润科目
  18. Java切图或者判断是不是纯色图片
  19. 服务器发送了 HTTP 状态代码 401: Unauthorized
  20. 揭秘-Android刷量有多容易 1

热门文章

  1. Java多线程编程(3)
  2. BigBrother的大数据之旅Day 2 Linux(2)
  3. 脸萌~基于SVG绘制
  4. 前端知识体系思维导图
  5. 另眼看iPad发布。
  6. 技嘉1080显卡体质测试软件,超频测试与总结 - 技嘉GTX1080 Xtreme Gaming显卡评测:创新的重峦式三风扇 - 超能网...
  7. COGS 2057. [ZLXOI2015]殉国
  8. Ubuntu16.04 和 Win7 双系统启动顺序更改
  9. python 股市 挂单_股票买入挂单高了,隔夜挂单技巧
  10. 【汇正财经】波段操作有哪些运用技巧?