题目链接:https://www.luogu.org/problem/show?pid=1345

求最小割点集的大小,直接拆点转化成最小割边。把一个点拆成出点入点,入点向出点连一条容量为1的边,其他的边容量无穷大。

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int INF=<<;
int inline readint(){
int Num;char ch;
while((ch=getchar())<''||ch>'');Num=ch-'';
while((ch=getchar())>=''&&ch<='') Num=Num*+ch-'';
return Num;
}
int N,M,S,T;
int to[],ne[],c[],fir[],cnt=;
void Add(int x,int y,int z){
to[cnt]=y;
c[cnt]=z;
ne[cnt]=fir[x];
fir[x]=cnt++;
to[cnt]=x;
c[cnt]=;
ne[cnt]=fir[y];
fir[y]=cnt++;
}
int dep[],bfn[],ti=;
int q[],head,tail;
bool Bfs(){
head=tail=;
q[]=S;
dep[S]=;
bfn[S]=++ti;
while(head<=tail){
int u=q[head++];
for(int i=fir[u];i!=-;i=ne[i]){
int v=to[i];
if(bfn[v]!=ti&&c[i]){
bfn[v]=ti;
dep[v]=dep[u]+;
q[++tail]=v;
}
}
}
return bfn[T]==ti;
}
int cur[];
int Dfs(int u,int maxf){
if(u==T||!maxf) return maxf;
int flow=,f;
for(int &i=cur[u];i!=-;i=ne[i]){
int v=to[i];
if(dep[v]==dep[u]+&&(f=Dfs(v,min(maxf,c[i])))>){
flow+=f,maxf-=f;
c[i]-=f,c[i^]+=f;
if(!maxf) break;
}
}
return flow;
}
int Dinic(){
int ans=;
while(Bfs()){
memcpy(cur,fir,sizeof(fir));
ans+=Dfs(S,INF);
}
return ans;
}
int main(){
N=readint();
M=readint();
S=readint();
T=readint();
memset(fir,-,sizeof(fir));
for(int i=;i<=M;i++){
int a=readint(),
b=readint();
Add(a+N,b,INF);
Add(b+N,a,INF);
}
for(int i=;i<=N;i++) Add(i,i+N,);
Add(S,S+N,INF);
printf("%d\n",Dinic());
return ;
}

最新文章

  1. C++构造函数/析构函数 设置成private的原因
  2. Java02
  3. SQL Server取datetime的日期部分
  4. 建立docker私有库(docker registry)(转)
  5. ajax 参数有中文
  6. Java用户线程和守护线程
  7. BZOJ3588 : fx
  8. 动手实现自己的 STL 容器 《1》---- vector
  9. Xcode与OX 版本对照表
  10. 短日期比较 js
  11. 用 JMH 检测 Lambdas 序列化性能
  12. hdoj 3572 Task Schedule【建立超级源点超级汇点】
  13. linux安装总结(亲测)
  14. synchronized 方式实现监控器中数据成员的同步
  15. poj 1384 Piggy-Bank(全然背包)
  16. ST-1之乱码bug
  17. L2-013 红色警报 (25 分)
  18. linux 新建用户、用户组 以及为新用户分配权限(转)
  19. cesium 中地图发生了平移,放缩,旋转等动作所要执行的动作
  20. python代码检索小引擎

热门文章

  1. 【翻译自mos文章】oracle db 中的用户账户被锁--查看oracle用户的尝试次数
  2. Ubuntu 14.04正式公布,一个不眠之夜
  3. OC基础:Date
  4. leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法
  5. JavaScript语言基础4
  6. Eclipse添加Qt插件
  7. scikit-learn 机器学习工具
  8. 以太坊源码学习 – EVM
  9. 一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用
  10. windows系统下mysql5.5查看和设置数据库编码