[USACO4.4]追查坏牛奶Pollutant Control
题目链接:ヾ(≧∇≦*)ゝ
Solution:
第一问很好解决,根据网络流:最大流=最小割定理,我们可以轻松求出。
至于第二问,我们不妨把每一条边乘上一个大于1000的数再加上1。
这样的话,对于最小割,显然就是求出来的\(maxflow/W\)(W为乘上的数)。
而对于第二问,则是\(maxflow\,\,mod \,\,W\),因为每割去一条边,它就会加上1
Code:
#include<bits/stdc++.h>
#define N 3001
#define inf 1926081700
#define int long long
using namespace std;
int n,m,cnt=1;
int S=1,T,head[N];
struct Edge{int nxt,to,v;}edge[N];
void ins(int x,int y,int z){
edge[++cnt].nxt=head[x];
edge[cnt].to=y;edge[cnt].v=z;
head[x]=cnt;
}
namespace Network_Flow{
queue<int> q;
int delta,dep[N];
int bfs(){
delta=inf;
memset(dep,0,sizeof(dep));
q.push(S);dep[S]=1;
while(!q.empty()){
int x=q.front();q.pop();
for(int i=head[x];i;i=edge[i].nxt)
if(!dep[edge[i].to]&&edge[i].v){
dep[edge[i].to]=dep[x]+1;
delta=min(delta,edge[i].v);
q.push(edge[i].to);
}
}
return dep[T];
}
int dfs(int x,int rest){
if(x==T||rest<=0) return rest;
int flow=0;
for(int i=head[x];i;i=edge[i].nxt){
int y=edge[i].to,v=edge[i].v;
if(v&&dep[y]==dep[x]+1){
int now=dfs(y,min(rest,v));
edge[i].v-=now;
edge[i^1].v+=now;
flow+=now;rest-=now;
if(rest<=0) break;
}
}
return flow;
}
void dinic(){
int maxflow=0;
while(bfs()) maxflow+=dfs(S,inf);
int ans1=maxflow,ans2=maxflow;
printf("%lld %lld\n",ans1/N,ans2%N);
}
}
int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();};
return x*f;
}
signed main(){
n=read(),m=read();T=n;
for(int x,y,z,i=1;i<=m;i++){
x=read(),y=read(),z=read();
ins(x,y,z*N+1);ins(y,x,0);
}
using namespace Network_Flow;
dinic();
return 0;
}
[USACO4.4]追查坏牛奶Pollutant Control的更多相关文章
- 洛谷 P1344 [USACO4.4]追查坏牛奶Pollutant Control 解题报告
P1344 [USACO4.4]追查坏牛奶Pollutant Control 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候 ...
- 洛谷 P1344 [USACO4.4]追查坏牛奶Pollutant Control
题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候,有三聚氰胺的牛奶已经进入了送货网.这个送货网很大,而且关系复杂.你知道这批牛 ...
- 【题解】Luogu P1344 [USACO4.4]追查坏牛奶Pollutant Control
原题传送门 看到这种题,应该一眼就能知道考的是最小割 没错这题就是如此简单,跑两遍最大流(最小割=最大流),一次边权为题目所给,一次边权为1 还有一种优化,优化后只需跑一次最大流,把每条边的权值改成w ...
- luogu P1344 [USACO4.4]追查坏牛奶Pollutant Control
传送门 要求断掉某些边使得两个点不连通,显然是最小割 但是要求选的边数尽量少,,, 可以考虑修改边权(容量),即把边权\(c\)改成\(c*(m+1)+1\) 没了 // luogu-judger-e ...
- 洛谷 1344 [USACO4.4]追查坏牛奶Pollutant Control——最大流
题目:https://www.luogu.org/problemnew/show/P1344 那个边数的限制,只要把边权乘1001再+1即可.乘1001是因为有1000条边,这样流量小的不会因为边数多 ...
- USACO Section 4.4 追查坏牛奶Pollutant Control
http://www.luogu.org/problem/show?pid=1344 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件 ...
- [USACO Section 4.4]追查坏牛奶Pollutant Control (最小割)
题目链接 Solution 一眼看过去就是最小割,但是要求割边最少的最小的割. 所以要用骚操作... 建边的时候每条边权 \(w = w * (E+1) + 1;\) 那么这样建图跑出来的 \(max ...
- 洛谷 P1344 追查坏牛奶Pollutant Control —— 最小割
题目:https://www.luogu.org/problemnew/show/P1344 就是求最小割: 但是还要边数最小,所以把边权都*1001+1,这样原来流量部分是*1001,最大流一样的不 ...
- 【Luogu1344】追查坏牛奶(最小割)
[Luogu1344]追查坏牛奶(最小割) 题面 洛谷 题解 裸的最小割,但是要求边的数量最小. 怎么办呢?给每条边的权值额外加上一个很大的值就了. #include<iostream> ...
随机推荐
- jquery mouseover与mouseenter区别
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- 20155237 2016-2017-2《Java程序设计》课程总结
20155237 2016-2017-2<Java程序设计>课程总结 预备作业1 刚接触Markdown的写法,初写博客,简单了解娄老师的教学方式. 预备作业2 怎么将学习java像学习一 ...
- Exp5
实验 实验1 - 直接攻击系统开启的漏洞服务,获取系统控制权 1.选择要使用的模块 在这里我选择的模块是ms08_067 首先我们需要查询一下有关ms08_067所在模块的相关信息 search ms ...
- Windows下面的常用的快捷键
最小化的快捷键: 最小化当前窗口:Alt+ESC 还原刚刚最小化的窗口:Alt+Tab(次快捷键组合可以在多个窗口中切换) 显示桌面,切换之前的桌面:Win+D 在浏览器页面之间切换:Ctrl+T ...
- libgdx学习记录7——Ui
libgdx中的UI设计主要通过其对应的Style类进行实现,也可以通过skin实现.如果没有编辑好的skin文件,可以创建一个默认的skin,再添加已经设计好的style类即可,然后在需要使用的地方 ...
- [SHOI2012]随机树[期望dp]
题意 初始 \(1\) 个节点,每次选定一个叶子节点并加入两个儿子直到叶子总数为 \(n\),问叶子节点深度和的平均值的期望以及最大叶子深度的期望. \(n\leq 100\) . 分析 对于第一问, ...
- 生成本地测试用https证书,支持通配符和多域名,初学OpenSSL
18-01-26在v2ex上看到一妹纸发的<身为一个 21 岁的年轻程序员,我已经腰突了(躺>,哈哈,感同身受,想到这几天我左腿麻木持续了好几天,前几天屁股疼的只要坐下就站不起来,不过站着 ...
- Unity导入模型出现 (Avatar Rig Configuration mis-match. Bone length in configuration does not match position in animation)?
昨天遇到这两个模型导入的问题,查了一下资料,自己摸索了一下解决方法..总结一下~ 出现的原因:(问题1)Warning 当模型文件导入以后并且设置Animation Type是Generic的时候,动 ...
- 微软职位内部推荐-Senior Software Engineer-DUT
微软近期Open的职位: Document Understanding and Task (DUT) team in STCA focuses on semantic understanding an ...
- Unity插件-NGUI学习笔记
Anchors 的作用 类似Android里面的.9格式图片的功能, 边框可以随着文字变大而变大. 实现方法: 用NGUI 创建一个Sprite, 命名为TextBg, 一个Label, Label的 ...