最大流——poj1459
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
#define maxn 100005
#define inf 0x3f3f3f3f
struct Edge{int to,nxt,w;}e[maxn<<];
int head[maxn],tot,n,m,np,nc,s,t;
void init(){
memset(head,-,sizeof head);
tot=;
}
void add(int u,int v,int w){
e[tot].to=v;e[tot].w=w;e[tot].nxt=head[u];head[u]=tot++;
e[tot].to=u;e[tot].w=;e[tot].nxt=head[v];head[v]=tot++;
} int d[maxn];
int bfs(){
memset(d,,sizeof d);
queue<int>q;
q.push(s);d[s]=; while(q.size()){
int x=q.front();q.pop();
for(int i=head[x];i!=-;i=e[i].nxt){
int y=e[i].to;
if(e[i].w== || d[y])continue;
d[y]=d[x]+;
q.push(y);
if(y==t)return ;
}
}
return ;
}
int dfs(int x,int flow){
if(x==t)return flow;
int rest=flow;
for(int i=head[x];i!=- && rest; i=e[i].nxt){
int y=e[i].to;
if(d[y]!=d[x]+ || e[i].w==)continue;
int k=dfs(y,min(rest,e[i].w));
if(!k)d[y]=;
rest-=k;e[i].w-=k;e[i^].w+=k;
}
return flow-rest;
}
int dinic(){
int ans=;
while(bfs())
while(int flow=dfs(s,inf))
ans+=flow;
return ans;
} int main(){
while(cin>>n>>np>>nc>>m){
init();
s=;t=n+;
for(int i=;i<=m;i++){
int u,v,w;
scanf("\n(%d,%d)%d",&u,&v,&w);
u++,v++;
add(u,v,w);
} for(int i=;i<=np;i++){
int u,w;
scanf("\n(%d)%d",&u,&w);
++u;
add(s,u,w);
}
for(int i=;i<=nc;i++){
int u,w;
scanf("\n(%d)%d",&u,&w);
++u;
add(u,t,w);
} cout<<dinic()<<'\n';
}
}
最大流——poj1459的更多相关文章
- POJ1459 Power Network 网络流 最大流
原文链接http://www.cnblogs.com/zhouzhendong/p/8326021.html 题目传送门 - POJ1459 题意概括 多组数据. 对于每一组数据,首先一个数n,表示有 ...
- POJ-1459 Power Network(最大流)
https://vjudge.net/problem/POJ-1459 题解转载自:優YoU http://user.qzone.qq.com/289065406/blog/1299339754 解题 ...
- POJ-1459 Power Network---最大流
题目链接: https://cn.vjudge.net/problem/POJ-1459 题目大意: 简单的说下题意(按输入输出来讲,前面的描述一堆的rubbish,还用来误导人),给你n个点,其中有 ...
- POJ-1459(最大流+EK算法)
Power Network POJ-1459 这题值得思索的就是特殊的输入,如何输入一连串字符.这里采用的方法是根据输入已知的输入格式,事先预定好要接受的数据类型. 这里套用的板子也是最大流的模板,但 ...
- POJ1459 Power Network(网络最大流)
Power Network Time Limit: 2000MS Memory Limit: 32768K Total S ...
- poj1087 A Plug for UNIX & poj1459 Power Network (最大流)
读题比做题难系列…… poj1087 输入n,代表插座个数,接下来分别输入n个插座,字母表示.把插座看做最大流源点,连接到一个点做最大源点,流量为1. 输入m,代表电器个数,接下来分别输入m个电器,字 ...
- poj1459 Power Network --- 最大流 EK/dinic
求从电站->调度站->消费者的最大流,给出一些边上的容量.和电站和消费者能够输入和输出的最大量. 加入一个超级源点和汇点,建边跑模板就能够了. 两个模板逗能够. #include < ...
- poj1459(最大流)
传送门:Power Network 题意:在一个网络图中有n个点,其中有np个发电站,nc个用户,m条电线;每个发电站,用户,和电线都对应有一个最大的电流;让求出该网络中最大的电流. 分析:最大流裸题 ...
- poj-1459(网络流-最大流)
题意:给你n个点的电网系统,有一些点是电站,能提供p的电能,有些点是用户,能消耗c的电能,有些是过渡站,不消耗不产生(等于没用),然后m条电线(x,y,w),代表x可以向y运输w的电能,问你这个电网系 ...
随机推荐
- 2018-2-13-win10-uwp-音频
title author date CreateTime categories win10 uwp 音频 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23 ...
- 搭建一个node.js项目
初始化项目 新建一个文件夹,运行 npm init 初始化项目 mkdir okadaGo cd okadaGo npm init 按照提示输入一些项目的相关信息 D:\web\node>mkd ...
- Java利用MD5WithRSA签名及DESede加密
前言:近期公司做数据加密及签名,整理如下: 一.数字签名. 是只有信息的发送者才能产生的别人无法伪造的一段数字串,具有不可抵赖性,可验证信息完整性的一种手段. 签名不可伪造:其他人因为没有对应的私钥, ...
- Java ----单个list 删除元素
转载:https://www.cnblogs.com/lostyears/p/8809336.html 方式一:使用Iterator的remove()方法 public class Test { pu ...
- jeecg下实现自动默认模糊查询
也许jeecg的作者深受SAP毒害吧,没考虑到广大使用JEECG的人群为SAP用户,及所开发的项目均为中小项目,无惧大数据模糊查询带来的功能影响. 经网友“&&康&&& ...
- (转)coures包下载和安装 可解决报错ImportError: No module named '_curses'
原创文章,转载请注明出处. coures curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 UNIX 的系统(包括Linux)的标准部分,而且 ...
- jsp-request应用1
用jsp写表单提交数据时需要用到request去读取数据,表单代码如下: <form action="requestresult.jsp" method="post ...
- 剑指offer——02二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- RHEL7更换yum源
1,删除注册和订阅提示 查找subscription-manager相关组件: rpm -qa | grep subscription-manager 删除subscription-maanager相 ...
- js用document.getElementById时要注意!
<!DOCTYPE html> <html lang="en"> <head> <script src="http://code ...