无向图的最小割。套了个模板。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAXN 555
#define inf 1<<30 int v[MAXN],dist[MAXN];
int map[MAXN][MAXN];
bool vis[MAXN];
int n,m,xx; //结点下标从0开始!!!!!!!!! //求全局最小割的Stoer_Wanger算法
int Stoer_Wanger(int n)
{
int res=inf;
for(int i=;i<n;i++)v[i]=i;
while(n>){
int k=,pre=;//pre用来表示之前加入A集合的点,我们每次都以0点为第一个加入A集合的点
memset(vis,false,sizeof(vis));
memset(dist,,sizeof(dist));
for(int i=;i<n;i++){
k=-;
for(int j=;j<n;j++){
if(!vis[v[j]]){
dist[v[j]]+=map[v[pre]][v[j]];//dis数组用来表示该点与A集合中所有点之间的边的长度之和
if(k==-||dist[v[k]]<dist[v[j]]){
k=j;
}
}
}
vis[v[k]]=true;
if(i==n-){
res=min(res,dist[v[k]]);
//将该点合并到pre上,相应的边权就要合并
for(int j=;j<n;j++){
map[v[pre]][v[j]]+=map[v[j]][v[k]];
map[v[j]][v[pre]]+=map[v[j]][v[k]];
}
v[k]=v[--n];//删除最后一个点
}
pre=k;
}
}
return res;
} int main()
{
int u,v,w;
while()
{
scanf("%d%d%d",&n,&m,&xx);
if(n==&&m==&&xx==) break;
memset(map,,sizeof(map));
while(m--){
scanf("%d%d%d",&u,&v,&w);
u--,v--;
map[u][v]+=w;
map[v][u]+=w;
}
int ans=Stoer_Wanger(n);
printf("%d\n",ans);
}
return ;
}

HDU 3691 Nubulsa Expo的更多相关文章

  1. HDU 3691 Nubulsa Expo(全局最小割Stoer-Wagner算法)

    Problem Description You may not hear about Nubulsa, an island country on the Pacific Ocean. Nubulsa ...

  2. HDU 3691 Nubulsa Expo(全局最小割)

    Problem DescriptionYou may not hear about Nubulsa, an island country on the Pacific Ocean. Nubulsa i ...

  3. UVALive 5099 Nubulsa Expo 全局最小割问题

    B - Nubulsa Expo Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit S ...

  4. UVALive 5099 Nubulsa Expo 全球最小割 非网络流量 n^3

    主题链接:点击打开链接 意甲冠军: 给定n个点m条无向边 源点S 以下m行给出无向边以及边的容量. 问: 找一个汇点,使得图的最大流最小. 输出最小的流量. 思路: 最大流=最小割. 所以题意就是找全 ...

  5. King of Destruction HDU - 3002 && HDU - 3691(全局最小割)

    求无向图的最小割 有没有源点都一样,不影响 #include <iostream> #include <cstdio> #include <sstream> #in ...

  6. hdu 3691最小割将一个图分成两部分

    转载地址:http://blog.csdn.net/xdu_truth/article/details/8104721 题意:题给出一个无向图和一个源点,让你求从这个点出发到某个点最大流的最小值.由最 ...

  7. HDU 3691

    一个源点,一个汇点,明显是网络流的问题,但据说用网络流来求最小割,会超时..囧,那出题的人是怎么想的... 用SW的算法来求最小割. #include <iostream> #includ ...

  8. UVALive 5099 Nubulsa Expo(全局最小割)

    题面 vjudge传送门 题解 论文题 见2016绍兴一中王文涛国家队候选队员论文<浅谈无向图最小割问题的一些算法及应用>4节 全局最小割 板题 CODE 暴力O(n3)O(n^3)O(n ...

  9. 全局最小割StoerWagner算法详解

    前言 StoerWagner算法是一个找出无向图全局最小割的算法,本文需要读者有一定的图论基础. 本文大部分内容与词汇来自参考文献(英文,需***),用兴趣的可以去读一下文献. 概念 无向图的割:有无 ...

随机推荐

  1. HTML转PDF

    1)使用工具转换.如:wkhtmltopdf 2)Chrome浏览器打印功能中,有另存为PDF格式文件.(推荐最便捷)

  2. 【实验室笔记】C#上位机学习笔记

    用C#编写上位机,基本流程是[1]串口配置,[2]串口发送数据,[3]串口接收数据. [1]串口配置 串口的属性配置包括: No.1串口端口号 No.2串口波特率 No.3串口数据位 No.4串口停止 ...

  3. sql语句的使用;

    1.导出数据库的语句: mysqldump -u root -p shop > d:\shop.sql

  4. html各元素中的区别

    HTML中DIV与SPAN的区别 html的div和span, 经常会用到, 尤其是前者. 1. div是块级元素, 实际上就是一个区域, 主要用于容纳其他标签. 默认的display属性是block ...

  5. postgresql 修改属性

    up vote2down votefavorite From this article, I tried to update or delete property of a JSONB column: ...

  6. Minigui3.0 自定义遥控输入引擎

    本人最近在从事minigui的开发工作,使用的gui版本为最新的3.0.12,平台环境为海思的HI3515. 在历经千辛万苦,终于将gui成功的移植到了开发板上,这里不多赘述,没有移植成功的朋友可以点 ...

  7. MapReduce,DataJoin,链接多数据源

    主要介绍用DataJoin类来链接多数据源,先看一下例子,假设二个数据源customs和orders customer ID       Name      PhomeNumber 1         ...

  8. Oracle教程-常用命令(二)

    oracle sql*plus常用命令 一.sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1).sys用户是超级用户,具有最高权限,具有sysdba角色,有cr ...

  9. js实现url链接encode加密

    function urlencode(clearString) { var output = ''; var x = 0; clearString = utf16to8(clearString.toS ...

  10. 面向对象的特性-为String类型的变量扩展一个replaceAll()函数

    ———————————————————————————— <script type="text/javascript">                    //按钮 ...