[jdoj1817]Drainage Ditches_网络流
Drainage Ditches jdoj-1817
题目大意:网络流裸求最大流
注释:n(点数),m(边数)<=200.
想法:裸的网络流求最大流,用bfs+dfs,美其名曰dinic。
没有开始?何来最后... ...代码... ...
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int n,m,ans;
int dis[300];
int head[210],to[500],nxt[500],f[500],cnt=1;
void add(int x,int y,int z)
{
to[++cnt]=y;
nxt[cnt]=head[x];
f[cnt]=z;
head[x]=cnt;
}
bool bfs()
{
queue<int> q;
memset(dis,-1,sizeof(dis));
while(!q.empty()) q.pop();
q.push(1),dis[1]=0;
while(!q.empty())
{
int x=q.front();q.pop();
for(int i=head[x];i;i=nxt[i])
if(f[i]&&dis[to[i]]<0)
{
dis[to[i]]=dis[x]+1;
q.push(to[i]);
if(to[i]==n) return true;
}
}
return false;
}
int dinic(int x,int flow)
{
int a,temp=flow;
if(x==n) return flow;
for(int i=head[x];i;i=nxt[i])
{
if(f[i]>0&&dis[to[i]]==dis[x]+1)
{
a=dinic(to[i],min(f[i],temp));
if(a==0) dis[to[i]]=-1;
temp-=a;f[i]-=a;f[i^1]+=a;
if(temp==0) break;
}
}
return flow-temp;
}
int main()
{
scanf("%d%d",&m,&n);
for(int x,y,z,i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);add(y,x,0);
}
while(bfs())
{
ans+=dinic(1,1<<30);
}
printf("%d",ans);
return 0;
}
小结:bfs时需要加特判,加边时注意一些细节的错误。add时tot需要是1,不然我们通过tot^1寻找反向残流时会出现bug
[jdoj1817]Drainage Ditches_网络流的更多相关文章
- POJ 1273 Drainage Ditches (网络流Dinic模板)
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...
- POJ 1273:Drainage Ditches 网络流模板题
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 63339 Accepted: 2443 ...
- HDU1532 Drainage Ditches 网络流EK算法
Drainage Ditches Problem Description Every time it rains on Farmer John's fields, a pond forms over ...
- poj 1273 Drainage Ditches (网络流 最大流)
网络流模板题. ============================================================================================ ...
- USACO 4.2 Drainage Ditches(网络流模板题)
Drainage DitchesHal Burch Every time it rains on Farmer John's fields, a pond forms over Bessie's fa ...
- NYOJ 323 Drainage Ditches 网络流 FF 练手
Drainage Ditches 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Every time it rains on Farmer John's fields, ...
- POJ 1273 Drainage Ditches 网络流 FF
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 74480 Accepted: 2895 ...
- Drainage Ditches~网络流模板
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...
- [POJ1273][USACO4.2]Drainage Ditches (网络流最大流)
题意 网络流最大流模板 思路 EK也不会超时 所以说是一个数据比较水的模板题 但是POJ有点坑,多组数据,而且题目没给 哭得我AC率直掉 代码 用的朴素Dinic #include<cstdio ...
随机推荐
- 视频显示格式720p
720p是一种视频显示格式.字母p意为逐行扫描(progressive scan),数字720则表示水平方向有720条扫描线. 通常720p的画面分辨率为1280×720,一般亦可称为高画质(HD). ...
- Parallel中分区器Partitioner的简单使用
Partitioner.Create(1,10,4).GetDynamicPartitions() 为长度为10的序列创建分区,每个分区至多4个元素,分区方法及结果:Partitioner.Creat ...
- Error:Error #2174
1.错误描述 Error:Error #2174 : 对于每个FileReference,每次只能执行一个下载.上载.加载或保存操作 2.错误原因 Flex中,在做单文件上传时,多次点击"上 ...
- Django学习-13-simple_tag使用
一些HTML方法 {{item.event_start | date:"Y-m-d H:i:s"}} {{bi ...
- Ajax前后台交互函数
function AJAX(obj){ //做网络请求的时候参数以对象的形式传递进来 //我们规定obj里面包含属性:url, //请求方式type, //date前端给后端传递的参数 //回调函数s ...
- JavaScript设计模式(7)-设配器模式
适配器模式 1. 作用: 协调两个不同的接口 2. 适用场景 适配器适用于客户期待的接口与现有 API 提供的接口不兼容这种场景.他只能用来协调语法上的差异问题.适配器所适配的两个方法执行的应该是类似 ...
- html 点击复制
<span>集团登陆:</span> <input readonly id="jituan" type="text" value= ...
- BZOJ1001 狼抓兔子
最小割 代码 # include <bits/stdc++.h> # define IL inline # define RG register # define Fill(a, b) m ...
- Spring Boot初探之restful服务发布
一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot发布restful服务接口. 二.搭建基础 ...
- java微信公众号开发token验证失败的问题及解决办法
本文引自http://m.blog.csdn.net/qq_32331997/article/details/72885424 微信公众平台服务器配置时,需要引入token,但是提交的时候总是提示to ...