P1344-[USACO4.4]追查坏牛奶Pollutant Control【网络流,最小割】
正题
题目链接:https://www.luogu.org/problemnew/show/P1344
题目大意
要求1不能到n点需要去掉的边的权值之和最小,在这样的情况下求最少去掉的边。
解题思路
对于每条边的边权分为两部分一个是权值,一个是割掉的数量,然后前者比后者优先。
那么对于每个权值www,就定义为w∗E+1(E>n)w*E+1(E>n)w∗E+1(E>n)
这样就分为了w/Ew/Ew/E和w%Ew\%Ew%E两部分
codecodecode
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#define ll long long
using namespace std;
const ll N=320,M=10010,inf=1e18,cs=2333;
struct node{ll to,next,w;
}a[M*2];
ll tot=1,n,s,t,m,ans;
ll dep[N],ls[N];
queue<int> q;
void addl(ll x,ll y,ll w)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;a[tot].w=w;a[++tot].to=x;a[tot].next=ls[y];ls[y]=tot;a[tot].w=0;
}
bool bfs()
{memset(dep,0,sizeof(dep));while(!q.empty()) q.pop();q.push(s);dep[s]=1;while(!q.empty()){ll x=q.front();q.pop();for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(!dep[y]&&a[i].w){dep[y]=dep[x]+1;if(y==t) return true;q.push(y);}}}return false;
}
ll dinic(ll x,ll flow)
{ll rest=0,k;if(x==t) return flow;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(dep[x]+1==dep[y]&&a[i].w){rest+=(k=dinic(y,min(a[i].w,flow-rest)));a[i].w-=k;a[i^1].w+=k;if(rest==flow) return flow;}}if(!rest) dep[x]=0;return rest;
}
void netflow()
{while(bfs())ans+=dinic(s,inf);
}
int main()
{scanf("%lld%lld",&n,&m);s=1;t=n;for(ll i=1;i<=m;i++){ll x,y,w;scanf("%lld%lld%lld",&x,&y,&w);w=w*cs+1;addl(x,y,w);}netflow(); printf("%lld %lld",ans/cs,ans%cs);
}
P1344-[USACO4.4]追查坏牛奶Pollutant Control【网络流,最小割】相关推荐
- 洛谷P1344 [USACO4.4]追查坏牛奶Pollutant Control(网络流, 最大流最小割)
初学网络流:http://blog.csdn.net/wzw1376124061/article/details/55001639 最大流最小割:http://blog.csdn.net/wzw137 ...
- P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网络流)
P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网络流) 题目链接 文章目录 P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网 ...
- 洛谷 P1344 [USACO4.4] 追查坏牛奶Pollutant Control【网络流】
省选Day2来临前给自己一个提醒:关键时刻记得开long long! 好,我们来看一个简单的网络流题. 如何在求最小割的同时得到最小割的边数呢? P1344 [USACO4.4]追查坏牛奶Pollut ...
- 洛谷 P1344 [USACO4.4]追查坏牛奶Pollutant Control 解题报告
P1344 [USACO4.4]追查坏牛奶Pollutant Control 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候 ...
- P1344 [USACO4.4] 追查坏牛奶Pollutant Control
类型:最小割 建模分析: 很明显,每个仓库就是节点,而车即为管道. 要求我们不能有从1->n的路径,就是把1,n分到两个集合去. 第一问我们把容量设为运输费用 套用最小割==最大流定理求出答案. ...
- [USACO4.4]追查坏牛奶Pollutant Control
https://www.luogu.org/problemnew/show/P1344 这道题很容易就可以看出是最小割=最大流. 但是要求出要割几条边就有些毒瘤了. ↓为废话 但orzn*inf后,蒟 ...
- USACO4.4 追查坏牛奶Pollutant Control
题目链接:https://www.luogu.com.cn/problem/P1344 这显然是一道网络流题目 第一问裸的最大流 关键在于第二问怎么求 一个很妙的做法是将边权乘上大常数再加1,这样分成 ...
- 【网络流-最小割】USA4.4——追查坏牛奶Pollutant Control
前言 你说你是个网络流的题,就算了嘛,还要输出方案,啧啧啧... 题目 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候,有三 ...
- [USACO Section 4.4]追查坏牛奶Pollutant Control (最小割)
题目链接 Solution 一眼看过去就是最小割,但是要求割边最少的最小的割. 所以要用骚操作... 建边的时候每条边权 \(w = w * (E+1) + 1;\) 那么这样建图跑出来的 \(max ...
最新文章
- python hstack_Python学习之Numpy速成记——基础篇(中)
- 清华大学朱军:深度生成模型、算法和概率编程库(附视频+PPT)
- 移动端重构系列6——切入切出动画
- linux printk 源码,Printk原理简介
- cURL模拟POST方式提交数据
- 实战:Redis哨兵模式(上)
- 这部计算机27厘米宽英语怎么说,24/27/32寸电脑显示器尺寸多大?长宽多少厘米?显示屏长宽与面积的算法...
- 在Ubuntu Linux上安装和使用Git和GitHub:初学者指南
- cognos java_cognos与java结合 ?急!急!急!
- 【愚公系列】2022年02月 Django商城项目 26-搜索引擎功能实现
- iOS 12.0-12.1.2 完整越狱教程
- 如何使用浏览器的网页全文翻译工具
- 关于网络存储技术和存储的协议
- 拒绝丧偶式育儿,正确「养育男孩」
- CDN加速是什么?具体有什么用?
- html浏览器安全调色板,网页安全色调色盘
- 别再问我为什么你敲的代码很水了!
- 《那些年啊,那些事——一个程序员的奋斗史》——47
- qq快捷登陆 php代码,qq互联--qq快捷登陆
- Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-长连接超低功耗方案
热门文章
- 电影特效用到什么计算机知识,后期影视特效处理知识普及
- 网页表格线框html,关于Dreamweaver中怎么让html网页中的table边框细线显示?
- android java 8_四个库,让你在 Android 中启用 Java 8 功能
- oracle+查表物理块数,如何统计一段时间内 发生在某个表上的 物理读写的块数
- 连接mysql数据库2013_使用VS2013 + EF6 + .NET4.5 连接Mysql数据库
- w10计算机无法打印,win10升级后惠普无法打印怎么解决_win10升级后惠普打印不了的处理办法...
- vue 前端设置允许跨域_web 前端的一些小问题
- python实例化对象是什么意思_请帮我理解python对象的实例化.
- 嵌入式linux pcie网卡配置,嵌入式Linux下PCIE数据采集卡驱动开发
- [计组]寄存器和存储器的区别