HDU4289 Control 【网络流】
来源:互联网 发布:javascript pdf教程 编辑:程序博客网 时间:2024/06/13 23:48
题意:n个点,m条边,去除某些点使s、d不连通,每个点有权值
思路:最小割等于最大流。n个点拆点,入点到出点,边权为点权;m条双向边,出点连入点,边权为inf
#include<stdio.h>#include<iostream>#include<string.h>#include<string>#include<stdlib.h>#include<math.h>#include<vector>#include<list>#include<map>#include<set>#include<stack>#include<queue>#include<algorithm>#include<numeric>#include<functional>using namespace std;typedef long long ll;typedef pair<int,int> pii;const int maxn = 505;struct edge {int to,cf,rev;};vector<edge> G[maxn];int lev[maxn],iter[maxn];void init(int x){for(int i = 0; i <= x; i++)G[i].clear();}void add(int from, int to, int cap){G[from].push_back((edge){to,cap,G[to].size()});G[to].push_back((edge){from,0,G[from].size()-1});}void bfs(int s){memset(lev,-1,sizeof lev);queue<int> q;lev[s] = 0;q.push(s);while(!q.empty()){int v = q.front();q.pop();for(int i = 0; i < G[v].size(); i++){edge &e = G[v][i];if(e.cf > 0 && lev[e.to] < 0){lev[e.to] = lev[v] + 1;q.push(e.to);}}}}int dfs(int v,int t, int f){if(v == t) return f;for(int &i = iter[v]; i < G[v].size(); i++){edge &e = G[v][i];if(e.cf > 0 && lev[v] < lev[e.to]){int d = dfs(e.to, t, min(f,e.cf));if(d > 0){e.cf -= d;G[e.to][e.rev].cf += d;return d;}}}return 0;}int maxflow(int s,int t){int flow = 0;while(1){bfs(s);if(lev[t] < 0) return flow;memset(iter,0,sizeof iter);int f;while((f = dfs(s,t,0x3f3f3f3f)) > 0)flow += f;}}int main(void){int n,m,s,d;while(scanf("%d%d",&n,&m)!=EOF){scanf("%d%d",&s,&d);init(2*n);for(int i = 1; i <= n; i++){int k;scanf("%d",&k);add(2*i-1,2*i,k);}for(int i = 0; i < m; i++){int a,b;scanf("%d%d",&a,&b);add(2*b,2*a-1,0x3f3f3f3f);add(2*a,2*b-1,0x3f3f3f3f);}printf("%d\n",maxflow(2*s-1,2*d));}return 0;}
阅读全文
0 0
- HDU4289 Control 【网络流】
- HDU4289网络流
- hdu4289-网络流
- hdu4289—Control(最大流)
- 2012成都赛区网络赛第二题---Control(hdu4289)
- hdu4289 Control (ISAP算法)
- hdu4289 Control最小割
- hdu4289——Control(最大流最小割+SAP)
- HDU4289-Control(最小割定理)
- 解题报告 之 HDU4289 Control
- hdu4289 Control --- 最小割,拆点
- 【HDU4289】
- hdu4289
- hdu4289 最大流最小割
- hdu4289(拆点最大流)
- 【网络流】 HDOJ 4289 Control
- HDU 4289 Control 网络流
- HDU4289(最大流)(dinic算法+拆点)
- Redis数据结构详解之List(二)
- 常用js函数
- 经典sql语句大全
- leetcode 313. Super Ugly Number
- 【Tomcat】batch获得war包
- HDU4289 Control 【网络流】
- MySQL 服务日志
- swagger-editor语法
- Unity3D:移除某个组件下的所有子对象(清空列表)
- MySQL 网络访问连接
- MySQL 内建函数
- MySQL 日志管理
- jetson tx1安装caffe 编译时 出现error==cudaSuccess(8 VS 0)类似错误
- 【Ganglia】集群监控系统搭建