poj 2914&&hdu 3002 全局最小割Stoer-Wagner算法模板
#include<stdio.h>
#include<string.h>
#include<iostream>
#define inf 0x3fffffff
#define N 510
int n,ma[N][N],combine[N];
int seach(int &s,int &t) {
int vis[N],i,j,tm,maxx,w[N];
memset(vis,0,sizeof(vis));
memset(w,0,sizeof(w));
tm=10000;
for(i=0;i<n;i++) {
maxx=-inf;
for(j=0;j<n;j++)
if(!vis[j]&&!combine[j]&&maxx<w[j]) {//找到最大值
maxx=w[j];
tm=j;
}
if(t==tm) {return w[t];}//最后t和tm相等
vis[tm]=1;
s=t;t=tm;
for(j=0;j<n;j++)//
if(!vis[j]&&!combine[j])
w[j]+=ma[t][j];
}
return w[t];
}
int mincut() {
int mi=inf,ans,i,s,t,j;
memset(combine,0,sizeof(combine));
for(i=0;i<n-1;i++) {//只需要找n-1次
s=-1;t=-1;
ans=seach(s,t);//找到t和t的前一个点s
combine[t]=1;//移除
if(ans<mi)mi=ans;
for(j=0;j<n;j++) {//将t合并到s点
ma[s][j]+=ma[t][j];
ma[j][s]+=ma[j][t];
}
}
return mi;
}
int main() {
int m,i,j,k;
while(scanf("%d%d",&n,&m)!=EOF) {
memset(ma,0,sizeof(ma));
while(m--) {
scanf("%d%d%d",&i,&j,&k);
ma[i][j]+=k;ma[j][i]+=k;
}
printf("%d\n",mincut());
}
return 0;
}
poj 2914&&hdu 3002 全局最小割Stoer-Wagner算法模板的更多相关文章
- POJ 2914 Minimum Cut 全局最小割
裸的全局最小割了吧 有重边,用邻接矩阵的时候要小心 #include<iostream> #include<cstdio> #include<bitset> #in ...
- POJ 2914 Minimum Cut【最小割 Stoer-Wangner】
题意:求全局最小割 不能用网络流求最小割,枚举举汇点要O(n),最短增广路最大流算法求最大流是O(n2m)复杂度,在复杂网络中O(m)=O(n2),算法总复杂度就是O(n5):就算你用其他求最大流的算 ...
- 求全局最小割(SW算法)
hdu3002 King of Destruction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- 图的全局最小割的Stoer-Wagner算法及例题
Stoer-Wagner算法基本思想:如果能求出图中某两个顶点之间的最小割,更新答案后合并这两个顶点继续求最小割,到最后就得到答案. 算法步骤: --------------------------- ...
- poj 2914(stoer_wanger算法求全局最小割)
题目链接:http://poj.org/problem?id=2914 思路:算法基于这样一个定理:对于任意s, t V ∈ ,全局最小割或者等于原图的s-t 最小割,或者等于将原图进行 Cont ...
- UVALive 5099 Nubulsa Expo 全局最小割问题
B - Nubulsa Expo Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit S ...
- poj2914 Minimum Cut 全局最小割模板题
Minimum Cut Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 8324 Accepted: 3488 Case ...
- POJ 2914 Minimum Cut (全局最小割)
[题目链接] http://poj.org/problem?id=2914 [题目大意] 求出一个最小边割集,使得图不连通 [题解] 利用stoerwagner算法直接求出全局最小割,即答案. [代码 ...
- POJ 2914 Minimum Cut Stoer Wagner 算法 无向图最小割
POJ 2914 题意:给定一个无向图 小于500节点,和边的权值,求最小的代价将图拆为两个联通分量. Stoer Wagner算法: (1)用类似prim算法的方法求"最大生成树" ...
随机推荐
- H3C子接口配置要点及实例说明
类型一:以太网子接口配置要点(单臂路由) 第一步:在路由器对端的交换机上配置好vlan信息(如vlan10/vlan20) 第二步:将交换机上与路由器直接相连的以太口配置成trunk口并同意 ...
- The Triangle--nyoj 18
The Triangle 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure ...
- 建模:3D建模
ylbtech-建模:3D建模 “3D建模”通俗来讲就是通过三维制作软件通过虚拟三维空间构建出具有三维数据的模型.3D建模大概可分为:NURBS和多边形网格. NURBS对要求精细.弹性与复杂的模型有 ...
- ROS单线多拨pppoe
#设置内网IP地址 / ip add add interface=ether1 address=192.168.0.254/255.255.255.0 #设置共享上网 / ip firewall na ...
- Hadoop MapReduce编程 API入门系列之网页排序(二十八)
不多说,直接上代码. Map output bytes=247 Map output materialized bytes=275 Input split bytes=139 Combine inpu ...
- mysql的递归(使用函数)
getChildList: BEGIN #声明两个局部变量 ); ); #初始化局部变量 SET sTemp = ''; #调用cast函数将int转换为char SET sTempChd = roo ...
- [Offer收割]编程练习赛35
有歧义的号码 #include<stdio.h> #include<string.h> #include<stdlib.h> int cmp(const void ...
- vue 子组件向父组件传值通信
父组件 子组件 子组件用this.$emit
- 搭建 Lepus 天兔 监控MySQL
Part1: Lepus安装需要Lamp环境,lepus官网手册也建议采用XAMPP的方式安装,lepus也是在XAMPP上进行研发的 注意xampp会把apache,mysql,php都安装,所以要 ...
- OpenCV_Python教程 系列!
这个是作者的总结系列!赞一个! 原文链接:http://blog.csdn.net/sunny2038/article/details/9057415 在python中使用OpenCV:http:// ...