最大流dicnic——hdu1532模板题
2024-08-31 20:29:03
#include<bits/stdc++.h>
using namespace std;
#define maxn 1005
#define ll long long const ll inf = 0x3f3f3f3f3f3f3f3f; struct Edge{ll to,nxt,w;}e[maxn<<];
int head[maxn],tot,n,m;
void init(){
memset(e,,sizeof e);
memset(head,-,sizeof head);
tot=;
}
void add(ll u,ll v,ll w){
e[tot].to=v;e[tot].nxt=head[u];e[tot].w=w;head[u]=tot++;
} int d[maxn];
bool bfs(){//在残量网络上构造分层图
memset(d,,sizeof d); queue<int>q;
while(q.size())q.pop();
q.push();d[]=; while(q.size()){
int x=q.front();q.pop();
for(int i=head[x];i!=-;i=e[i].nxt){
int y=e[i].to;
if(d[y] || e[i].w==)continue;
q.push(y);
d[y]=d[x]+;
if(y==n)return ;
}
}
return ;
}
int dinic(int x,ll flow){
if (x==n)return flow;
ll rest=flow;
for(int i=head[x];i!=- && rest>;i=e[i].nxt){
int y=e[i].to;
if(e[i].w== || d[y]!=d[x]+)continue;
ll k=dinic(y,min(rest,e[i].w));
if(!k) d[y]=; //y点已经被增广完毕
e[i].w-=k; e[i^].w+=k;
rest-=k;
}
return flow-rest;
} int main(){
while(cin>>m>>n){
init();
for(int i=;i<=m;i++){
ll u,v,w;
cin>>u>>v>>w;
add(u,v,w);
add(v,u,);
}
ll flow=,ans=;
while(bfs())
while(flow=dinic(,inf))
ans+=flow;
cout<<ans<<'\n';
}
}
最新文章
- centos6.4搭建lnmp服务(转载)
- JS操作SELECT方法
- 研究了下apache的漏洞CVE-2012-0053
- centos 下mysql操作
- django中通过model名字获取model
- 记录OC学习的一点一滴(一)
- 基于EM的多直线拟合
- java基础系列--Date类
- 重构手法之Introduce Explaining Variable(引用解释性变量)
- PXE+kickstart网络安装CentOS7.4系统及过程中各种报错
- flutter环境配置
- 数据库连性池性能测试(hikariCP,druid,tomcat-jdbc,dbcp,c3p0)
- layui 表格图片放大
- Python+Selenium学习--下拉框处理
- andrdoi示例项目SampleSyncAdapter分析
- zabbix server端自动发现和zabbix agent端自动注册
- 解决Qt Creator下 undefined reference to &#39;qmain(int,char**)&#39;的问题
- 20165218 《网络对抗技术》Exp3 免杀原理与实践
- 使用distcp并行拷贝大数据文件
- c# 画image
热门文章
- JavaScript中this对象原理简洁说明
- windows 和 linux 多线程
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实 现)interface(接口
- DOM 对象和jQuery对象的转换
- ArrayList集合二
- js面向对象的几种方式----工厂模式、构造函数模式、原型模式
- OpenGL glfw
- php面向对象深入理解(二)
- 牛客多校第九场 A The power of Fibonacci 杜教bm解线性递推
- mysql 第一次启动及常用命令