【Luogu1344】追查坏牛奶(最小割)

题面

洛谷

题解

裸的最小割,但是要求边的数量最小。
怎么办呢?给每条边的权值额外加上一个很大的值就了。

#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
#define ll long long
#define pls 2000000001
#define MAX 50
inline int read()
{int x=0;bool t=false;char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=true,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return t?-x:x;
}
struct Line{int v,next;ll w;}e[3000];
int h[MAX],cnt=2;
inline void Add(int u,int v,ll w)
{e[cnt]=(Line){v,h[u],w};h[u]=cnt++;e[cnt]=(Line){u,h[v],0};h[v]=cnt++;
}
int n,m,S,T;
int level[MAX];
bool bfs()
{for(int i=S;i<=T;++i)level[i]=0;queue<int> Q;Q.push(S);level[S]=1;while(!Q.empty()){int u=Q.front();Q.pop();for(int i=h[u];i;i=e[i].next)if(!level[e[i].v]&&e[i].w)level[e[i].v]=level[u]+1,Q.push(e[i].v);}return level[T];
}
ll dfs(int u,ll flow)
{if(u==T||!flow)return flow;ll ret=0;for(int i=h[u];i;i=e[i].next){int v=e[i].v;ll d;if(e[i].w&&level[v]==level[u]+1){d=dfs(v,min(flow,e[i].w));ret+=d;flow-=d;e[i].w-=d;e[i^1].w+=d;}}return ret;
}
ll Dinic()
{ll ret=0;while(bfs())ret+=dfs(S,1e18);return ret;
}
int main()
{n=read();m=read();S=1;T=n;for(int i=1;i<=m;++i){int u=read(),v=read(),w=read();Add(u,v,w+pls);}ll ans=Dinic();printf("%lld %lld\n",ans%pls,ans/pls);return 0;
}

转载于:https://www.cnblogs.com/cjyyb/p/9698829.html

【Luogu1344】追查坏牛奶(最小割)相关推荐

  1. luogu 1344 追查坏牛奶(最小割)

    第一问求最小割. 第二问求割边最小的最小割. 我们直接求出第二问就可以求出第一问了. 对于求割边最小,如果我们可以把每条边都附加一个1的权值,那么求最小割是不是会优先选择1最少的边呢. 但是如果直接把 ...

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

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

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

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

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

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

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

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

  6. [USACO4.4]追查坏牛奶

    题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候,有三聚氰胺的牛奶已经进入了送货网.这个送货网很大,而且关系复杂.你知道这批牛 ...

  7. 追查坏牛奶(最大流)

    进入今天的正题,追查坏牛奶 思想的话不会人家的玄学求最小割的边数,于是自己想了个神奇的乱搞,先求出最大流,即最小割,然后枚举每条边看是否完全属于割集,然后将其永久去掉 然后将整个输出即可 #inclu ...

  8. Luogu P1344 追查坏牛奶

    Luogu P1344 追查坏牛奶 Luogu P1344 追查坏牛奶 题目 思路 代码 题目 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸, ...

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

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

最新文章

  1. Charles抓包实战详解
  2. Android API 中文 (52) —— ZoomButtonsController.OnZoomListener
  3. 301重定向的好处:
  4. Java功底之static、final、this、super
  5. real6410 裸机实验- LED
  6. 【Android】Android中WIFI开发总结(一)
  7. java多线程w3c_多线程
  8. C 语言调用CPU指令,CPU 1214C中 TSEND_C指令 最多可以使用几次-工业支持中心-西门子中国...
  9. 36 SD配置-销售凭证设置-定义项目类别
  10. 计算与推断思维 翻译完成
  11. [android]实现拖动效果
  12. 输入角度,输出正弦、余弦函数值
  13. linux 系统找回密码,Linux系统密码忘记后的五种恢复方法
  14. java 第三方微信平台_微信公众账号第三方平台全网发布源码(java-jeewx)
  15. linux 嗅探器源码,一个简易网络嗅探器的实现
  16. left join 多表关联查询
  17. 【麒麟操作系统】命令行下配置网卡及DNS
  18. 腾讯优图一年记:贾佳亚的专访笔记
  19. [BAOJ3631]松鼠的新家
  20. c语言结构体编辑学生成绩管理,【C语言】结构体的应用以及学生成绩管理系统的设计...

热门文章

  1. js制作bmi指数计算器代码
  2. 计算机专业开学计划,关于计算机工作计划4篇
  3. wps点击目录就跳到内容的方法教程
  4. 怀旧服服务器还没有修复,怀旧服15大服务器限制转入 8.3首个在线修正修复了啥?...
  5. 诚信迎考 计算机考试主题班会策划,2015年诚信考试主题班会教案
  6. 计算机科学班会,改变了——我系12级计算机科学与技术1班主题班会
  7. 网易起诉暴雪欠款3亿/ ChatGPT又崩了/ 腾讯前副总裁因重婚被起诉…今日更多新鲜事在此...
  8. Origin(Pro):3D图-投影、垂线、标签
  9. Microsoft Visual Studio 2008破解方法
  10. echartsjs上证指数k线图表插件