全局最小割模板 poj2914
来源:互联网 发布:web storm mac 编辑:程序博客网 时间:2024/05/22 09:05
http://poj.org/problem?id=2914
参考资料:http://www.hankcs.com/program/algorithm/poj-2914-minimum-cut.html
就是单纯的全局最小割
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <vector>using namespace std;#define M 1009const int INF = 0x3f3f3f3f;int G[M][M];int w[M],v[M];bool vis[M];int n,m;int sw(int n){ int min_cut = INF; for(int i = 0;i < n;i++) v[i] = i; while(n > 1) { int pre = 0; memset(vis,false,sizeof(vis)); memset(w,0,sizeof(w)); for(int i = 1;i < n;i++) { int k = -1; for(int j = 1;j < n;j++) { if(vis[v[j]]) continue; w[v[j]] += G[v[pre]][v[j]]; if(k == -1 || w[v[k]] < w[v[j]]) { k = j; } } vis[v[k]] = true; if(i == n-1) { int s = v[pre],t = v[k]; min_cut = min(min_cut,w[t]); for(int j = 0;j < n;j++) { G[s][v[j]] += G[t][v[j]]; G[v[j]][s] += G[v[j]][t]; } v[k] = v[--n]; } pre = k; } } return min_cut;}int main(){ while(scanf("%d %d",&n,&m) == 2) { memset(G,0,sizeof(G)); for(int i = 0;i < m;i++) { int u,v,ww; scanf("%d %d %d",&u,&v,&ww); G[u][v] += ww; G[v][u] += ww; } int min_cut = sw(n); printf("%d\n",min_cut); } return 0;}
0 0
- 全局最小割模板 poj2914
- poj2914 全局最小割
- POJ2914 Minimum Cut 【全局最小割Stoer-Wagner模板题】
- 全局最小割 poj2914 Minimum Cut
- POJ2914 Minimum Cut(最小割模板题)
- POJ2914 Minimum Cut 【全局最小割】(Stoer_Wagner)
- POJ2914 Minimum Cut【全局最小割】【Stoer-Wangner】
- poj2914(stoer-wagner算法求解全局最小割)
- 【POJ2914】Minimum Cut-无向图的全局最小割
- 全局最小割模板
- 全局最小割模板
- poj2914无向图的最小割模板
- hdu 3002 全局最小割模板题
- 无向图最小割--poj2914
- POJ2914 Minimum Cut 最小割集
- POJ2914 Minimum Cut(最小割)
- POJ2914 Minimum Cut —— 最小割
- hdu 3691 全局最小割模板题 + 一点学习记录
- java常用同步工具类
- 使用Java 导入Zip文件遇到中文命名乱码问题
- 玩味AndroidStudio的NewProject
- 解决列表 (ListView GrifView RecyclerView )结合CheckBox实现列表选择的的问题
- 我的博客
- 全局最小割模板 poj2914
- 无线传感网实验箱
- Spring 实现远程访问详解——rmi
- http块指令解析以及存储
- 如何通俗的解释计算机是如何实现1+1=2计算的?
- uva10534(最长递增子序列的算法变形 复杂度较低)
- 网易2016研发工程师编程题
- cas系列(三)--HTTP和HTTPS、SSL
- c# 字符串拼接效率