这道题很有意思,原题是只需输出最小割集大小,现在oj上改成了输出字典序最小的割集;

题解:可以考虑从小到大删边,若删掉这条边后,最小割变小,保持不变,记录此时的最小割大小;

若最小割不变,恢复这条边;

这样做的原因是什么呢?从小到大可以保证字典序的要求,删完边后若最小割减小,这条边一定在最小割上,删掉它不再恢复可以保证不在把这条通路上的其他边也收进来;

网络流博大精深,还是需要好好体会的;

但在此之前,应该先会敲代码;

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cstdlib>
#include<ctime>
#include<algorithm>
using namespace std;
const int maxn=;
const int inf=;
int S,T,n,m;
struct node{
int y,next,re,flow;
}e[maxn<<],e2[maxn<<];
int linkk[maxn],len=;
void insert(int x,int y,int flow){
e[++len].y=y;
e[len].next=linkk[x];
linkk[x]=len;
e[len].flow=flow;
e[len].re=len+;
e[++len].y=x;
e[len].next=linkk[y];
linkk[y]=len;
e[len].flow=;
e[len].re=len-;
}
void init(){
scanf("%d%d%d%d",&n,&m,&S,&T);
int x,y;
for(int i=;i<=m;i++){
scanf("%d%d",&x,&y);
if(x==S){insert(S,y,inf);insert(y+n,S,inf);}
else if(y==S){insert(S,x,inf);insert(x+n,S,inf);}
else if(x==T){insert(T,y,inf);insert(y+n,T,inf);}
else if(y==T){insert(x+n,T,inf);insert(T,x,inf);}
else {insert(x+n,y,inf);insert(y+n,x,inf);}
}
for(int i=;i<=n;i++)if(S!=i&&T!=i)insert(i,i+n,);
}
bool flag=;
int flow=inf,vis[maxn],ans=,f[maxn];
void dfs(int x,int a){
if(f[x])return;
vis[x]=;
if(x==T){
flag=;flow=a;ans+=flow;return;
}
for(int i=linkk[x];i;i=e[i].next){
if(vis[e[i].y]||(!e[i].flow))continue;
dfs(e[i].y,min(a,e[i].flow));
if(flag){
e[i].flow-=flow;e[e[i].re].flow+=flow;return;
}
}
}
void work(){
ans=;flag=;
while(flag){
flag=;
memset(vis,,sizeof(vis));
dfs(S,inf);
}
}
int main(){
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
init();
memcpy(e2,e,sizeof(e));
work();
cout<<ans<<endl;
int q[maxn],sum=ans,k=ans,tail=;
for(int i=;i<=n;i++){
if(i==S||i==T)continue;
memcpy(e,e2,sizeof(e));
f[i]=;
work();
if(ans<sum)q[++tail]=i,sum=ans;
else f[i]=;
}
sort(q+,q+tail+);
for(int i=;i<=k;i++)printf("%d ",q[i]);
}

奶牛通讯 usaco 网络流的更多相关文章

  1. 洛谷P2402 奶牛隐藏(网络流,二分答案,Floyd)

    洛谷题目传送门 了解网络流和dinic算法请点这里(感谢SYCstudio) 题目 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛 ...

  2. bzoj1779 [Usaco2010 Hol]Cowwar 奶牛战争(网络流)

    1779: [Usaco2010 Hol]Cowwar 奶牛战争 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 302  Solved: 131[Sub ...

  3. P2402 奶牛隐藏 二分+网络流

    floyd搞出两点间最短距离 二分判答案 // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; ty ...

  4. CODEVS 3279 奶牛的健美操

    3279 奶牛健美操 USACO  时间限制: 2 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题目描述 Description Farmer John为了保持奶牛们的 ...

  5. 题解 【USACO 4.2.1】草地排水

    [USACO 4.2.1]草地排水 Description 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫 ...

  6. poj2112 Optimal Milking --- 最大流量,二分法

    nx一个挤奶器,ny奶牛,每个挤奶罐为最m奶牛使用. 现在给nx+ny在矩阵之间的距离.要求使所有奶牛挤奶到挤奶正在旅程,最小的个体奶牛步行距离的最大值. 始感觉这个类似二分图匹配,不同之处在于挤奶器 ...

  7. 光纤通信(codevs 1955)

    题目描述 Description 农民John 想要用光纤连通他的N (1 <= N <= 1,000)个牲口棚(编号1..N).但是,牲口棚位于一个大池塘边,他仅可以连通相邻的牲口棚.J ...

  8. COGS130. [USACO Mar08] 游荡的奶牛[DP]

    130. [USACO Mar08] 游荡的奶牛 ★☆   输入文件:ctravel.in   输出文件:ctravel.out   简单对比时间限制:1 s   内存限制:128 MB 奶牛们在被划 ...

  9. usaco 地震 && 奶牛观光

    Usaco 地震: Description 一场地震把约翰家的牧场摧毁了,坚强的约翰决心重建家园.约翰已经重建了N个牧场, 现在他希望能修建一些道路把它们连接起来.研究地形之后,约翰发现可供修建的道路 ...

随机推荐

  1. Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法

    前言 我在实验进入linux系统启动xwindow server而不启动KDE GNOME等桌面系统时遇到的问题.只启动x server而不启动桌面系统,在xserver之上运行一个全屏的图形界面程序 ...

  2. VPN连接失败

    连接VPN是总提示 本来我以为是VPN服务器的问题,可是别人就能连接成功,所以只能是我自己机子的问题.后来检查了一下连接属性,终于发现了问题: 这里“允许使用这些协议”应该是处于选中状态,而我的属性里 ...

  3. Flask Web Development —— Web表单(上)

    Flask-WTF扩展使得处理web表单能获得更愉快的体验.该扩展是一个封装了与框架无关的WTForms包的Flask集成. Flask-WTF和它的依赖集可以通过pip来安装: (venv) $ p ...

  4. Ztack学习笔记(6)-广播组播点播

    Zigbee网络中进行数据通信主要有三种类型:单播.组播.广播.那这三种方式如何设置呢,在哪里设置呢, 一. 广播 当应用程序需要将数据包发送给网络的每一个设备时,使用这种模式.广播的短地址有三种 0 ...

  5. VMware-workstation-full-9.0.0-812388+汉化补丁+有效密钥

    更新内容:https://www.vmware.com/support/ws90/doc/workstation-90-release-notes.html 官网下载地址:https://my.vmw ...

  6. Android-----第三方 ImageLoader 的简单配置和使用

    ImageLoader 的简单使用配置,最好是将配置信息放到application里面,这样我们就不需要每次使用都需要配置了 1.首先我们得有一个包 2.简单的配置信息 //显示图片的配置 Displ ...

  7. MVC4.0网站发布和部署到IIS7.0上的方法【转:http://www.th7.cn/Program/net/201403/183756.shtml】

    最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不 ...

  8. python生成带参数二维码

    #coding:utf8 import urllib2 import urllib import json import string import random class WebChat(obje ...

  9. dev 激活没有权限问题

    用管理员身份打开 Microsoft Visual Studio 2010-->Visual Studio Tools-->Visual Studio 命令提示(2010) 然后输入一下命 ...

  10. 【转载】about slack

    About Slack slack is the difference b/w the REQUIRED TIME and the ARRIVAL TIME. 1.WHAT IS SLACK WITH ...