第一问是求最小割。第二问求最小割中集合中边最少的集合的大小。

第三问求集合中边最少且字典序最小的边的下标。

第一问直接求最大流就能解,第二问将原来的边的容量都改为1,求出来的最大流就是元素最少的一个最小割的大小。

将容量都改为1之后,直接枚举每个边和前面已经找到的边在同一个集合中,是的话输出边的下标。

/*
ID: modengd1
PROG: milk6
LANG: C++
*/
#include <iostream>
#include <memory.h>
#include <stdio.h>
#include <vector>
#include <queue>
using namespace std;
int N,M;
int level[33];
int input[33][33];
int inputC[33][33];
struct Edge
{int x,y,w;
};
vector<Edge> Edges;
void BFS(int s)
{memset(level,-1,sizeof(level));level[s]=0;queue<int> Q;Q.push(s);while(!Q.empty()){int now=Q.front();Q.pop();for(int i=1;i<=N;i++){if(input[now][i]&&level[i]<0){level[i]=level[now]+1;Q.push(i);}}}
}
int DFS(int s,int t,int f)
{if(s==t)return f;for(int i=1;i<=N;i++){if(input[s][i]&&level[i]==level[s]+1){int d=DFS(i,t,min(f,input[s][i]));if(d>0){input[s][i]-=d;input[i][s]+=d;return d;}}}return 0;
}
int max_flow(int s,int t)
{int flow=0;while(true){BFS(s);if(level[t]<0)return flow;int f;while((f=DFS(s,t,0x7fffffff))>0){flow+=f;} }
}
int main()
{freopen("milk6.in","r",stdin);freopen("milk6.out","w",stdout);scanf("%d%d",&N,&M);memset(input,0,sizeof(input));for(int i=0;i<M;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);Edges.push_back((Edge){a,b,c});input[a][b]+=c;}int ans1=max_flow(1,N);cout<<ans1;for(int i=0;i<Edges.size();i++){input[Edges[i].x][Edges[i].y]+=1;}memcpy(inputC,input,sizeof(inputC));int ans2=max_flow(1, N);cout<<' '<<ans2<<endl;for(int i=0;i<Edges.size();i++){memcpy(input,inputC,sizeof(input));input[Edges[i].x][Edges[i].y]-=1;memcpy(inputC,input,sizeof(inputC));int f=max_flow(1,N);if(f<ans2){cout<<i+1<<endl;ans2=f;}else {inputC[Edges[i].x][Edges[i].y]+=1;}}
}

转载于:https://www.cnblogs.com/modengdubai/p/4867538.html

usaco Pollutant Control相关推荐

  1. USACO 4.4.2 Pollutant Control追查坏牛奶 题解与分析

    Pollutant Control追查坏牛奶 译 by Twink 描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候,有三聚氰胺的 ...

  2. 洛谷 P1344 [USACO4.4] 追查坏牛奶Pollutant Control【网络流】

    省选Day2来临前给自己一个提醒:关键时刻记得开long long! 好,我们来看一个简单的网络流题. 如何在求最小割的同时得到最小割的边数呢? P1344 [USACO4.4]追查坏牛奶Pollut ...

  3. 洛谷 P1344 [USACO4.4]追查坏牛奶Pollutant Control 解题报告

    P1344 [USACO4.4]追查坏牛奶Pollutant Control 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候 ...

  4. P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网络流)

    P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网络流) 题目链接 文章目录 P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网 ...

  5. [USACO Section 4.4]追查坏牛奶Pollutant Control (最小割)

    题目链接 Solution 一眼看过去就是最小割,但是要求割边最少的最小的割. 所以要用骚操作... 建边的时候每条边权 \(w = w * (E+1) + 1;\) 那么这样建图跑出来的 \(max ...

  6. 洛谷P1344 [USACO4.4]追查坏牛奶Pollutant Control(网络流, 最大流最小割)

    初学网络流:http://blog.csdn.net/wzw1376124061/article/details/55001639 最大流最小割:http://blog.csdn.net/wzw137 ...

  7. 【网络流-最小割】USA4.4——追查坏牛奶Pollutant Control

    前言 你说你是个网络流的题,就算了嘛,还要输出方案,啧啧啧... 题目 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候,有三 ...

  8. P1344-[USACO4.4]追查坏牛奶Pollutant Control【网络流,最小割】

    正题 题目链接:https://www.luogu.org/problemnew/show/P1344 题目大意 要求1不能到n点需要去掉的边的权值之和最小,在这样的情况下求最少去掉的边. 解题思路 ...

  9. USACO4.4 追查坏牛奶Pollutant Control

    题目链接:https://www.luogu.com.cn/problem/P1344 这显然是一道网络流题目 第一问裸的最大流 关键在于第二问怎么求 一个很妙的做法是将边权乘上大常数再加1,这样分成 ...

最新文章

  1. 为什么要叫python-为什么叫Python
  2. VB.net实现从ListView控件中异地获取文本内容源代码
  3. 图像影音型计算机主板选择什么,电脑主板型号在哪里看? 每日一答
  4. (dfs)迷宫最小步数
  5. linux下安装在线mysql,嵌入式 Linux下安装Mysql离线和在线安装
  6. win10中关闭应用程序自动更新
  7. java byte 相等比较_Java字节码跟真正汇编的比较
  8. Stylus基本使用
  9. 快手短视频解析去水印原理及源码,sign+盐签名算法,获得无水印播放地址
  10. Java 使用dom4j进行XML解析
  11. 利用Global Mapper处理正摄卫片
  12. python 蒙特卡洛模拟股价_利用python进行蒙特卡罗模拟
  13. 自然语言处理——基于预训练模型的方法——第4章 自然语言处理中的神经网络基础
  14. zt中俄两军炮兵的差距
  15. 各种RAID磁盘阵列组实际容量计算方法
  16. 中国传媒大学计算机课程表,中国传媒大学新学院课程表.doc
  17. Keil MDK又来了一个小升级
  18. matlab画某个变量的全球分布
  19. 数字示波器CAN节点标定
  20. Ureal:用ue4做出游戏中的爆炸特效真实感和力量感

热门文章

  1. c语言x在二进制表示下1的个数,算法:计算十进制数字在二进制表示1的个数,...
  2. docker如何移除所有的mysql_docker容器删除了,link怎么还在?
  3. 谷歌json插件_程序员必备的4款Chrome插件,妥妥的神器!
  4. server sql 数据c盘迁移d盘_oracle 11g dbf数据文件从C盘迁移到D盘
  5. 删除顺序表中所有的的重复数据
  6. oracle sql判断相等,获取多行相等的人员(Oracle SQL)
  7. 实时卷积神经网络实现人脸检测和情感/性别分类
  8. YOLOV5的多主干网络backbone实现(Mobilenetv3Small、EagleEye、EfficientNetLite-0、PP-LCNet-1x、SwinTrans-YOLOv5等)
  9. keras 的 example 文件 cifar10_cnn.py 解析
  10. 2021 年高教社杯全国大学生数学建模竞赛A题分析