[洛谷P1343]地震逃生
题目大意:有n个点m条单向边,每条边有一个容量。现有x人要分批从1走到n,问每批最多能走多少人,分几批运完(或输出无法运完)。
解题思路:一看就是网络流的题目。每批最多能走多少人,即最大流。分几批运完,除一下即可。当最大流为0时无法运完。
以下是Dinic算法的代码(为什么我那么喜欢用Dinic?因为我个人认为它好写!):
C++ Code:
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
struct edges{
int from,to,cap,nxt;
}e[20000];
int cnt,n,m,x,head[202],level[202],iter[202];
void addedge(int from,int to,int cap){
e[++cnt]=(edges){from,to,cap,head[from]};
head[from]=cnt;
e[++cnt]=(edges){to,from,0,head[to]};
head[to]=cnt;
}
queue<int>q;
void bfs(int s,int t){
level[s]=0;
q.push(s);
while(!q.empty()){
int u=q.front();
q.pop();
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].to;
if(e[i].cap>0&&level[v]<0){
level[v]=level[u]+1;
q.push(v);
}
}
}
}
long long dfs(int u,int t,long long f){
if(u==t)return f;
for(int& i=iter[u];i;i=e[i].nxt){
int v=e[i].to;
if(e[i].cap>0&&level[u]<level[v]){
long long d=dfs(v,t,(f>e[i].cap)?(e[i].cap):(f));
if(d){
e[i].cap-=d;
e[i^1].cap+=d;
return d;
}
}
}
return 0;
}
long long max_flow(int s,int t){
long long flow=0;
while(1){
memset(level,-1,sizeof level);
bfs(s,t);
if(level[t]<0)return flow;
memcpy(iter,head,sizeof iter);
long long f;
if(f=dfs(s,t,0x3f3f3f3f3f3f3f3f))flow+=f;
}
}
int main(){
memset(head,0,sizeof head);
memset(e,0,sizeof e);
cnt=1;
scanf("%d%d%d",&n,&m,&x);
while(m--){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
addedge(a,b,c);
}
long long mf=max_flow(1,n);
if(mf)printf("%lld %d\n",mf,(long long)x/mf+(x%mf>0));else
puts("Orz Ni Jinan Saint Cow!");
return 0;
}
[洛谷P1343]地震逃生的更多相关文章
- 洛谷 P1343 地震逃生
P1343地震逃生 题目描述 汶川地震发生时,四川**中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带,每 ...
- 洛谷 P10P1343 地震逃生 改错
P1343 地震逃生 题目描述 汶川地震发生时,四川**中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有\(n\)个点,\(m\)条边.1号点为教室,\ ...
- 「洛谷P1343」地震逃生 解题报告
P1343 地震逃生 题目描述 汶川地震发生时,四川XX中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...
- 洛谷4951 地震 bzoj1816扑克牌 洛谷3199最小圈 / 01分数规划
洛谷4951 地震 #include<iostream> #include<cstdio> #include<algorithm> #define go(i,a,b ...
- P1343 地震逃生(最大流板题)
P1343 地震逃生 题目描述 汶川地震发生时,四川**中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...
- 【洛谷P1343】地震逃生
一道傻吊的网络流题,wori我写的读入优化怎么老T? 远离读入优化报平安? #include<bits/stdc++.h> #define N 4005 #define inf 10000 ...
- P1343 地震逃生
题目描述 汶川地震发生时,四川**中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带,每条边都只能容纳一定量 ...
- 【luogu P1343 地震逃生】 题解
题目链接:https://www.luogu.org/problemnew/show/P1343 菜 #include <queue> #include <cstdio> #i ...
- 洛谷 P1948 [USACO08JAN]电话线Telephone Lines
P1948 [USACO08JAN]电话线Telephone Lines 题目描述 Farmer John wants to set up a telephone line at his farm. ...
随机推荐
- Charles抓取微信小程序数据 以及 其它应用网站数据
为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用).使用Charles可以非常方便的抓取Http/Https请求.官方dmg下载地址:点击此处下载 Charles抓 ...
- 压缩图片C#算法
转载自 http://www.open-open.com/lib/view/open1391348644910.html using System.IO; using System.Drawing; ...
- swift语言点评五-Function
一.函数类型 Every function in Swift has a type, consisting of the function’s parameter types and return t ...
- Angualr+asp.net core webapi+efcore系列
想着学习一门前端框架,WTF,看了又看,卧槽对于.Net程序员来说,还有什么比面向对象更香的呢,所以果断的选择了Angular.正好看各路大神以及官方文档想学习一下asp.net core,那就搞起吧 ...
- mysql插入数据出现java.lang.NullPointerException
在写购物车持久层的时候,要进行测试的时候居然出现了空指针异常: 最后发现是测试类少了 @RunWith(SpringRunner.class)@SpringBootTest 如下是没改之前的测试类: ...
- 玩转HTML5移动页面(优化篇)
标签:h5 页面优化收藏 热门分享 网页设计师必备的 酷站收藏网站 2013年不容错过的app ui素材 40个漂亮的扁平化网页设计欣赏 国内网页设计公司网站欣赏 55套网页设计常用的psd格式UI ...
- html5学习之第一步:认识标签,了解布局
图1. Acme United的网页的规划 Header区的例子包含了页面标题和副标题,< header>标签被用来创建页面的Header区的内容.除了网页本身之外,< header ...
- 洛谷 P1983 车站分级 拓扑排序
Code: #include<cstdio> #include<queue> #include<algorithm> #include<cstring> ...
- iOS基础UI控件介绍-Swift版
iOS基础UI控件总结 iOS基础控件包括以下几类: 1.继承自NSObject:(暂列为控件) UIColor //颜色 UIImage //图像 2.继承自UIView: 只能相应手势UIGest ...
- Jquery控件jrumble
<!DOCTYPE HTML> <html> <head> <title>demo.html</title> <meta h ...