Codevs 1993 草地排水
1993 草地排水
时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond
在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪)。作为一名一流的技师,农夫约翰已经在每条排水沟的一端安上了控制器,这样他可以控制流入排水沟的水流量。
农夫约翰知道每一条排水沟每分钟可以流过的水量,和排水系统的准确布局(起点为水潭而终点为小溪的一张网)。需要注意的是,有些时候从一处到另一处不只有一条排水沟。
根据这些信息,计算从水潭排水到小溪的最大流量。对于给出的每条排水沟,雨水只能沿着一个方向流动,注意可能会出现雨水环形流动的情形。
第1行: 两个用空格分开的整数N (0 <= N <= 200) 和 M (2 <= M <= 200)。N是农夫John已经挖好的排水沟的数量,M是排水沟交叉点的数量。交点1是水潭,交点M是小溪。
第二行到第N+1行: 每行有三个整数,Si, Ei, 和 Ci。Si 和 Ei (1 <= Si, Ei <= M) 指明排水沟两端的交点,雨水从Si 流向Ei。Ci (0 <= Ci <= 10,000,000)是这条排水沟的最大容量。
输出一个整数,即排水的最大流量。
5 4
1 2 40
1 4 20
2 4 20
2 3 30
3 4 10
50
#include<queue>
#include<vector>
#include<cstring>
#include<iostream>
#include<cstdio>
using namespace std;
#define INF 0x7f
int n,m,map[][]={},lays[];
bool vis[];
bool BFS(){
queue<int>q;
memset(lays,-,sizeof(lays));
lays[]=;q.push();
while(!q.empty()){
int u=q.front();q.pop();
for(int i=;i<=m;i++){
if(map[u][i]>&&lays[i]==-){
lays[i]=lays[u]+;
if(i==m)return ;
else q.push(i);
}
}
}
return ;
}
int Dinic(){
int maxf=;vector<int>st;
while(BFS()){
st.push_back();
memset(vis,,sizeof(vis));vis[]=;
while(!st.empty()){
int p=st.back();
if(p==m){
int minn,minx=INF;
for(int i=;i<st.size();i++){
int u=st[i-],v=st[i];
if(map[u][v]>&&map[u][v]<minx){
minn=u;minx=map[u][v];
}
}
maxf+=minx;
for(int i=;i<st.size();i++){
int u=st[i-],v=st[i];
map[u][v]-=minx;
map[v][u]+=minx;
}
while(!st.empty()&&st.back()!=minn){
vis[st.back()]=;st.pop_back();
}
}
else {
int i;
for(i=;i<=m;i++){
if(map[p][i]>&&lays[i]==
lays[p]+&&!vis[i]){
vis[i]=;st.push_back(i);
break;
}
}
if(i>m)st.pop_back();
}
}
}
return maxf;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=,a,b,c;i<=n;i++){
scanf("%d%d%d",&a,&b,&c);
map[a][b]+=c;
}
printf("%d\n",Dinic());
return ;
}
Codevs 1993 草地排水的更多相关文章
- codevs 1993草地排水
1993 草地排水
- 模板题 codevs 1993 草地排水 想学习的请看链接
不能再水的题了. Dinic算法,比EK更快. 想要学习请看链接 https://comzyh.com/blog/archives/568/ 并附上我的模板(其实和comzyh大神的一样) #in ...
- codevs 1993 草地排水 USACO
/*Dinic*/ #include<iostream> #include<cstdio> #include<cstring> #include<queue& ...
- CODEVS——T 1993 草地排水 USACO
http://codevs.cn/problem/1993/ 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 De ...
- 【CodeVS】1993草地排水
题目描述 Description 在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水 ...
- 【最大流】【CODEVS】1993 草地排水
[算法]网络流-最大流(dinic) [题解]http://www.cnblogs.com/onioncyc/p/6496532.html #include<cstdio> #includ ...
- AC日记——草地排水 codevs 1993
1993 草地排水 USACO 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 在农夫约翰的农场上,每 ...
- - > 网络流(【最大流】草地排水模板题)
1993 草地排水 USACO 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 在农夫约翰的农场上,每 ...
- codevs1993 草地排水(最大流)
1993 草地排水 USACO 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在农夫约翰的农场上,每逢下雨,Bes ...
随机推荐
- python实现批量修改文件名
import os def dele(): # 设置一个计数器 n=0 st = input('请输入你要删除的字符:') for i in f: b = f[n] if st in b: oldna ...
- JZOJ 4757. 树上摩托
Description Sherco是一位经验丰富的魔♂法师.Sherco在第零次圣杯战争中取得了胜利,并取得了王之宝藏——王の树.他想把这棵树砍去任意条边,拆成若干棵新树,并装饰在他的摩托上,让他的 ...
- Thinkphp 支付宝插件的引入 和调用
本文版权归本宝宝所有 未得允许不得转载 下载地址传送门 https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.twLYka&am ...
- MongDB之各种修改操作
接口IMongDaoUpdate: package com.net.test.mongdb.dao; import com.net.test.mongdb.entity.User; public in ...
- Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库
操作数据库 一.数据库 数据库类型主要有关系型数据库和菲关系型数据库. 数据库:用来存储和管理数的仓库,数据库是通过依据“数据结构”将数据格式化,以记录->表->库的关系存储.因此数据查询 ...
- A计划 hdu2102(BFS)
A计划 hdu2102 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国 ...
- Linux命令之---cd
命令简介 Linux cd 命令是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 命令格式 cd [目录名] 命令功能 切换当前目录至dirName 常用范例 ...
- Spring Boot 要点--启动类和热部署
spring boot需要一个启动类 比如 package com.tianmaying; import org.springframework.boot.SpringApplication; imp ...
- python - 接口自动化测试 - TestLogin - 登录接口测试用例
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: test_login.py @ide: PyCharm C ...
- python-os模块及md5加密
常用内置方法 __doc__打印注释 __package__打印所在包 __cached__打印字节码 __name__当前为主模块是__name__ == __main__ __file__打印文件 ...