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

最小割裸题。

那个限制就是在 i、j 之间连双向边。

根据本题能引出网络流中二元关系的种种。

别忘了写 if ( x==n+1 ) return flow ; !

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int N=2e4+,M=2e5+,INF=0x3f3f3f3f;
int n,m,hd[N],cr[N],xnt=,mxflow,dfn[N];
int num;
struct Ed{
int nxt,to,cap;
Ed(int n=,int t=,int c=):nxt(n),to(t),cap(c) {}
}ed[(N+M)<<];
void add(int x,int y,int z)
{
ed[++xnt]=Ed(hd[x],y,z);hd[x]=xnt;
ed[++xnt]=Ed(hd[y],x,);hd[y]=xnt;
}
bool bfs()
{
memset(dfn,,sizeof dfn);
dfn[]=;queue<int> q;q.push();
while(q.size())
{
int k=q.front();q.pop();
for(int i=hd[k],v;i;i=ed[i].nxt)
if(!dfn[v=ed[i].to]&&ed[i].cap)
{
dfn[v]=dfn[k]+;q.push(v);
if(v==n+)return true;
}
}
return false;
}
int dinic(int x,int flow)
{
if(x==n+)return flow;//!!!
int use=;
for(int &i=cr[x],v;i;i=ed[i].nxt)
if(dfn[v=ed[i].to]==dfn[x]+&&ed[i].cap)
{
int tmp=dinic(v,min(ed[i].cap,flow-use));
if(!tmp)dfn[v]=;
ed[i].cap-=tmp;ed[i^].cap+=tmp;use+=tmp;
if(use==flow)return flow;
}
return use;
}
int main()
{
scanf("%d%d",&n,&m);int x,y,z;
for(int i=;i<=n;i++)
{
scanf("%d%d",&x,&y);
add(,i,x);add(i,n+,y);
}
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);add(y,x,z);
}
while(bfs())
{
memcpy(cr,hd,sizeof hd);
int k=dinic(,INF);
mxflow+=k;
}
printf("%d",mxflow);
return ;
}

最新文章

  1. Xamarin.Android之Fragment Walkthrough
  2. 关于年终奖励的扣税算法BUG
  3. Copy15G的初始容量,注册就再送5G,邀请注册的人也送5G
  4. dom4j 使用总结
  5. 服务器发布WebService返回DataTable
  6. 在windows服务器中,将MongoDB服务化。
  7. 最清晰的ios消息推送机制教程
  8. 系统调用和中断处理的异同(以Linux MIPS为例)
  9. 读jquery.cookie.js源码学到的几个技巧
  10. Android开源资料大集合_架构&amp;UI
  11. 浅谈Spring(一)
  12. xquery
  13. JavaScript之通用addLoadEvent代码源码
  14. mysql 服务启动失败
  15. MongoDB学习笔记(二)
  16. Re.常系数齐次递推
  17. Maven的日常
  18. Mybatis之占位符与拼接符
  19. 网卡最大传输单位MTU和巨型帧(Jumbo frame)设置
  20. (Alpha)Let&#39;s-版本测试报告

热门文章

  1. android菜鸟学习笔记19----Android数据存储(三)XML文件的解析及序列化
  2. 我的Android进阶之旅------>解决 Error: ShouldNotReachHere() 问题
  3. eclipse 安装 json Editor Plugin的方法
  4. node-sass 安装失败的解决措施[转]
  5. 使用基本 SQL 命令
  6. sublime 添加 颜色插件 colorcoder
  7. Qt Creator 调试器 在 Ubuntu 13.10下 局部变量和表达式(Locals) 无内容
  8. Yii2学习笔记---内附GridView配置总结
  9. Python 3 socket 编程
  10. inline 元素的特性