博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hihoCoder 网络流四·最小路径覆盖
阅读量:6407 次
发布时间:2019-06-23

本文共 1730 字,大约阅读时间需要 5 分钟。

hihoCoder感觉很好。

网络流的精华就是建图

#include
#include
#include
#include
#include
using namespace std;struct node{ int point; int weight; int nxt;};node line[5000000];int head[50000],tail=-1;void add(int x,int y,int z){ line[++tail].point=y; line[tail].weight=z; line[tail].nxt=head[x]; head[x]=tail; line[++tail].point=x; line[tail].weight=0; line[tail].nxt=head[y]; head[y]=tail;}int cur[50000],dep[50000];bool BFS(int begin,int end){ for(int i=begin;i<=end;i++) { cur[i]=head[i]; dep[i]=0; } dep[begin]=1; queue
q; q.push(begin); while(!q.empty()) { int pas=q.front(); q.pop(); for(int i=head[pas];i!=-1;i=line[i].nxt) if(!dep[line[i].point]&&line[i].weight) { dep[line[i].point]=dep[pas]+1; q.push(line[i].point); } } if(dep[end]) return true; return false;}int DFS(int now,int aim,int limte){ if(now==aim||!limte) return limte; int flow=0,f; for(int i=cur[now];i!=-1;i=line[i].nxt) { cur[now]=i; if(dep[line[i].point]==dep[now]+1&&(f=DFS(line[i].point,aim,min(limte,line[i].weight)))) { limte-=f; flow+=f; line[i].weight-=f; line[i^1].weight+=f; if(!limte) break; } } return flow;}int dinic(int begin,int end){ int res=0; while(BFS(begin,end)) res+=DFS(begin,end,0x7fffffff); return res;}//以上都是标准的dinic。ISAP就是个垃圾int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=0;i<=2*n+1;i++)//0为起点,2*n+1为终点 head[i]=-1; int a,b; for(int i=1;i<=m;i++) { scanf("%d%d",&a,&b); add(a,b+n,1); } for(int i=1;i<=n;i++) add(0,i,1); for(int i=1;i<=n;i++) add(n+i,2*n+1,1); int ans=dinic(0,2*n+1); printf("%d",n-ans);}

转载于:https://www.cnblogs.com/Lance1ot/p/9037666.html

你可能感兴趣的文章
高效能人士
查看>>
【css】rem及其替换方案
查看>>
下面有关 JAVA 异常类的描述,说法正确的有()
查看>>
sicp第二章部分习题解答
查看>>
Android启动原理剖析【转】
查看>>
自身使用的springboot项目中比较全的pom.xml
查看>>
绕过前端,直接调用后端接口的可能性
查看>>
编码规范的要点
查看>>
python与C结构体之间二进制数据转换
查看>>
Wcf 基础编程
查看>>
VS2010 下C++使用UTF8编码
查看>>
BZOJ5248:[九省联考2018]一双木棋——题解
查看>>
BZOJ4355:Play with sequence——题解
查看>>
20:单词及字母去重排序案例
查看>>
npm install error issue
查看>>
软件工程作业1-WordCount
查看>>
Hystrix框架2--超时
查看>>
LAMP傻瓜式配置
查看>>
Kafka之Linux下安装
查看>>
Java性能调优
查看>>