正题

题目链接: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【网络流,最小割】相关推荐

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

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

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

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

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

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

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

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

  5. P1344 [USACO4.4] 追查坏牛奶Pollutant Control

    类型:最小割 建模分析: 很明显,每个仓库就是节点,而车即为管道. 要求我们不能有从1->n的路径,就是把1,n分到两个集合去. 第一问我们把容量设为运输费用 套用最小割==最大流定理求出答案. ...

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

    https://www.luogu.org/problemnew/show/P1344 这道题很容易就可以看出是最小割=最大流. 但是要求出要割几条边就有些毒瘤了. ↓为废话 但orzn*inf后,蒟 ...

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

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

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

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

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

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

最新文章

  1. python hstack_Python学习之Numpy速成记——基础篇(中)
  2. 清华大学朱军:深度生成模型、算法和概率编程库(附视频+PPT)
  3. 移动端重构系列6——切入切出动画
  4. linux printk 源码,Printk原理简介
  5. cURL模拟POST方式提交数据
  6. 实战:Redis哨兵模式(上)
  7. 这部计算机27厘米宽英语怎么说,24/27/32寸电脑显示器尺寸多大?长宽多少厘米?显示屏长宽与面积的算法...
  8. 在Ubuntu Linux上安装和使用Git和GitHub:初学者指南
  9. cognos java_cognos与java结合 ?急!急!急!
  10. 【愚公系列】2022年02月 Django商城项目 26-搜索引擎功能实现
  11. iOS 12.0-12.1.2 完整越狱教程
  12. 如何使用浏览器的网页全文翻译工具
  13. 关于网络存储技术和存储的协议
  14. 拒绝丧偶式育儿,正确「养育男孩」
  15. CDN加速是什么?具体有什么用?
  16. html浏览器安全调色板,网页安全色调色盘
  17. 别再问我为什么你敲的代码很水了!
  18. 《那些年啊,那些事——一个程序员的奋斗史》——47
  19. qq快捷登陆 php代码,qq互联--qq快捷登陆
  20. Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-长连接超低功耗方案

热门文章

  1. 电影特效用到什么计算机知识,后期影视特效处理知识普及
  2. 网页表格线框html,关于Dreamweaver中怎么让html网页中的table边框细线显示?
  3. android java 8_四个库,让你在 Android 中启用 Java 8 功能
  4. oracle+查表物理块数,如何统计一段时间内 发生在某个表上的 物理读写的块数
  5. 连接mysql数据库2013_使用VS2013 + EF6 + .NET4.5 连接Mysql数据库
  6. w10计算机无法打印,win10升级后惠普无法打印怎么解决_win10升级后惠普打印不了的处理办法...
  7. vue 前端设置允许跨域_web 前端的一些小问题
  8. python实例化对象是什么意思_请帮我理解python对象的实例化.
  9. 嵌入式linux pcie网卡配置,嵌入式Linux下PCIE数据采集卡驱动开发
  10. [计组]寄存器和存储器的区别