一个源点,一个汇点,明显是网络流的问题,但据说用网络流来求最小割,会超时。。囧,那出题的人是怎么想的。。。

用SW的算法来求最小割。

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int MAXN=;
const int inf=;
int vis[MAXN],combine[MAXN],wan[MAXN];
int map[MAXN][MAXN];
int n,m,t;
int mincut,S,T; void seacut(){
int Max; int p;
S=T=-;
memset(vis,,sizeof(vis));
memset(wan,,sizeof(wan));
for(int i=;i<n;i++){
Max=-inf;
for(int j=;j<n;j++){
if(!combine[j]&&!vis[j]&&wan[j]>Max){
Max=wan[j]; p=j;
}
}
if(p==T) return;
S=T;T=p;
vis[T]=;
for(int j=;j<n;j++){
if(!combine[j]&&!vis[j]){
wan[j]+=map[T][j];
}
}
}
} void storewanger(){
mincut=inf;
memset(combine,,sizeof(combine));
for(int i=;i<n-;i++){
seacut();
if(wan[T]<mincut) mincut=wan[T];
if(mincut==) return;
combine[T]=;
for(int j=;j<n;j++){
if(!combine[j]){
map[S][j]+=map[T][j];
map[j][S]+=map[j][T];
}
}
}
} int main(){
int u,v,w;
while(scanf("%d%d%d",&n,&m,&t)!=EOF){
if(!n&&!m&&!t) break;
memset(map,,sizeof(map));
for(int i=;i<m;i++){
scanf("%d%d%d",&u,&v,&w);
u--; v--;
map[u][v]+=w;
map[v][u]+=w;
}
storewanger();
printf("%d\n",mincut);
}
return ;
}

HDU 3691的更多相关文章

  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

    无向图的最小割.套了个模板. #include<iostream> #include<cstdio> #include<cstring> #include<a ...

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

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

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

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

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

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

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

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

  7. 图的连通性问题的小结 (双连通、2-SAT)

    图的连通性问题包括: 1.强连通分量. 2.最小点基和最小权点基. 3.双连通. 4.全局最小割. 5.2-SAT 一.强连通分量 强连通分量很少单独出题,一般都是把求强连通分量作为缩点工具. 有三种 ...

  8. POJ 3691 &amp; HDU 2457 DNA repair (AC自己主动机,DP)

    http://poj.org/problem?id=3691 http://acm.hdu.edu.cn/showproblem.php?pid=2457 DNA repair Time Limit: ...

  9. HDU 2457/POJ 3691 DNA repair AC自动机+DP

    DNA repair Problem Description   Biologists finally invent techniques of repairing DNA that contains ...

随机推荐

  1. js基本功能大全

    1.javascript的数组API: //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.length; //shif ...

  2. [Apple开发者帐户帮助]三、创建证书(2)创建开发者ID证书

    您可以使用开发人员帐户或Xcode 创建最多五个开发者ID应用程序证书和最多五个开发人员ID安装程序证书.(要在Xcode中创建开发者ID证书,请转到Xcode帮助中的管理签名证书.) 所需角色:帐户 ...

  3. G - Wrong Subtraction

    Problem description Little girl Tanya is learning how to decrease a number by one, but she does it w ...

  4. HBase编程 API入门系列之delete(客户端而言)(3)

    心得,写在前面的话,也许,中间会要多次执行,连接超时,多试试就好了. 前面的基础,如下 HBase编程 API入门系列之put(客户端而言)(1) HBase编程 API入门系列之get(客户端而言) ...

  5. jquery.validate验证text,checkbox,radio,selected

    index.cshtml <form id="formLogin" method="post"> <div> <label for ...

  6. SQLServer In和Exists

    In          Exists () 1分42秒  5秒 Exists() 返回布尔值 如果子查询结果行>0,则返回 TRUE. 反之返回FALSE exists(select * fro ...

  7. 青橙 M4 解锁BootLoader 并刷入recovery ROOT

    首先下载工具链接:https://pan.baidu.com/s/1o9xzTEi密码:7s7a 备用连接:https://pan.baidu.com/s/1bq47TMn 本篇教程教你如何傻瓜式解锁 ...

  8. creat-react-app 支持 less

    yarn  eject yarn add less less-loader config/ webpack.config.dev.js config/ webpack.config.prod.js 文 ...

  9. linux route命令的使用详解(转)

    route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是 为了解决以下问题:该Linu ...

  10. .NET Core & EntityFrameworkCore

    前言 .NET Core 相比于 .NET Fromework 有跨平台.轻量化且开源的优势. 在使用 EntityFrameworkCore 的时候也遇到了很多问题,至于网络上的教程嘛...大部分都 ...