题目:http://poj.org/problem?id=3469

最小割水题(竟然没能1A);

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int const maxn=2e4+,maxm=2e5+,inf=0x3f3f3f3f;
int n,m,hd[maxn],d[maxn],ct=,cur[maxn],ans;
queue<int>q;
struct N{
int to,nxt,w;
N(int t=,int n=,int w=):to(t),nxt(n),w(w) {}
}ed[(maxn+maxm)<<];
void add(int x,int y,int z)
{
ed[++ct]=N(y,hd[x],z); hd[x]=ct;
ed[++ct]=N(x,hd[y],); hd[y]=ct;
}
bool bfs()
{
while(q.size())q.pop();
memset(d,,sizeof d);
q.push(); d[]=;
while(q.size())
{
int x=q.front(); q.pop();
for(int i=hd[x],u;i;i=ed[i].nxt)
if(!d[u=ed[i].to]&&ed[i].w)d[u]=d[x]+,q.push(u);
}
return d[n+];
}
int dfs(int x,int f)
{
if(x==n+)return f;
int res=;
for(int &i=cur[x],u;i;i=ed[i].nxt)
{
if(d[u=ed[i].to]==d[x]+&&ed[i].w)
{
int k=dfs(u,min(ed[i].w,f-res));//f-res!!!
res+=k; ed[i].w-=k; ed[i^].w+=k;
if(res==f)return f;
}
}
if(!res)d[x]=;
return res;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=,a,b;i<=n;i++)
{
scanf("%d%d",&a,&b);
add(,i,a); add(i,n+,b);
}
for(int i=,x,y,z;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
add(x,y,z); add(y,x,z);
}
while(bfs())
{
memcpy(cur,hd,sizeof hd);
ans+=dfs(,inf);
}
printf("%d",ans);
return ;
}

最新文章

  1. 个人对B/S项目的一些理解(一)
  2. IntelliJ Idea 常用快捷键列表
  3. C# 利用反射动态将字符串转换成属性对应的类型值
  4. struts2权威指南学习笔记:struts2引入自定义库
  5. Light OJ 1140
  6. linux 系统管理 使用技巧
  7. 第三十二课:JSDeferred的性能提速
  8. OC中的消息传递和初始化
  9. Objective-C description的用法
  10. Lake Counting (POJ No.2386)
  11. Html5 拖放上传图片
  12. ubuntu16安装KVM
  13. 【JavaScript基础系列】决定你的人生能走多远的,是基础。
  14. 【MySQL】20个经典面试题,全部答对月薪10k+
  15. E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)
  16. .NETCore 下支持分表分库、读写分离的通用 Repository
  17. Qt OpenGL 鼠标拾取实现
  18. java中四舍五入——double转BigDecimal的精度损失问题
  19. Win7无法保存共享帐户密码
  20. javacv 340使用 人脸检测例子【转载】

热门文章

  1. HDU多校Round 3
  2. Apache 和 Nginx 下的 URL 重写
  3. vue+webpack+npm搭建的纯前端项目
  4. Linux常用命令——帮助命令
  5. ZOJ - 3992 - One-Dimensional Maze (思维)
  6. 迷宫自动生成以及基于DFS的自动寻路算法
  7. python3 时间模块 random模块之两个小练习
  8. np.tile(), np.repeat() 和 tf.tile()
  9. BZOJ 1832、1787 洛谷 4281 [AHOI2008]紧急集合
  10. 【02】json语法