博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod 1499 图(最小割)
阅读量:5287 次
发布时间:2019-06-14

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

  还是太菜了。。感觉是最小割然而不知道怎么建图。。以下是题解

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 const int maxn=1e3+5,INF=1e9; 9 struct Edge{ 10 int from,to,cap,flow; 11 Edge(int u,int v,int c,int f):from(u),to(v),cap(c),flow(f){} 12 }; 13 struct ISAP{ 14 int n,s,t; 15 vector
edges; 16 vector
G[maxn]; 17 bool vis[maxn]; 18 int d[maxn]; 19 int cur[maxn]; 20 int p[maxn]; 21 int num[maxn]; 22 23 void init(int n){ 24 this->n=n; 25 edges.clear(); 26 for(int i=0;i
Q; 39 Q.push(t); 40 d[t]=0; 41 vis[t]=1; 42 while(!Q.empty()){ 43 int x=Q.front();Q.pop(); 44 for(int i=0;i
s=s;this->t=t; 74 int flow=0; 75 BFS(); 76 memset(num,0,sizeof(num)); 77 for(int i=0;i
e.flow&&d[x]==d[e.to]+1){ 89 ok=1; 90 p[e.to]=G[x][i]; 91 cur[x]=i; 92 x=e.to; 93 break; 94 } 95 } 96 if(!ok){ 97 int m=n-1; 98 for(int i=0;i
e.flow)m=min(m,d[e.to]);101 }102 if(--num[d[x]]==0)break;103 num[d[x]=m+1]++;104 cur[x]=0;105 if(x!=s)x=edges[p[x]].from;106 }107 }108 return flow;109 }110 }isap;111 112 inline int ABS(int x){ return x>=0?x:-x;}113 int n,m;114 int g[maxn][maxn];115 int main(){116 memset(g,0,sizeof(g));117 scanf("%d%d",&n,&m);118 isap.init(n+2);119 for(int i=0;i

 

转载于:https://www.cnblogs.com/7391-KID/p/7670289.html

你可能感兴趣的文章
#C++初学记录(算法4)
查看>>
mysql练习题sql语句
查看>>
[No000014D]chrome console 调试 引入 jquery等外部库
查看>>
selenium 遇到chrome 弹出是否保存密码框
查看>>
linux 开机启动过程详解
查看>>
Spark On YARN内存分配
查看>>
apache服务器绑定泛解析域名
查看>>
java web每天定时执行任务(四步轻松搞定)
查看>>
Java学习之自动装箱和自动拆箱源码分析
查看>>
windows下Android(安卓)开发环境搭建 图文教程
查看>>
转载-前端模块化开发的价值
查看>>
ELK学习笔记之ElasticSearch的索引详解
查看>>
怎么针对大批量数据进行分割
查看>>
pyreadline
查看>>
机器学习中使用的神经网络(三)
查看>>
webpack 4.0尝鲜
查看>>
《HTTP权威指南》学习笔记——URL和资源
查看>>
C# 数组、ArrayList和List三者的区别
查看>>
spring缓存
查看>>
android-async-http AsyncHttpClient介绍
查看>>