POJ 1459 Power Network
题意:有n个据点,np个发电机。nc个用户,m条电线。给出发电机。用户。电线的电流限制,求最大网络电流。
这是带节点的网络流。事实上和原来没什么差别,仅仅要在前后都添加一个据点,在这里我加了0和n+1两个节点,而发电机节点的电流限制能够
转化为0->节点的电流限制,用户节点电流的限制能够转化为节点->n+1的电流限制,之后套用最大网络流模板就可以。这里我写了,Edmonds_karp算法。
稍后传上Dinic算法。。。
。
。
。。。。。。。。。。。。。
。。
AC代码例如以下:
Edmonds_karp算法
#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#define min(a,b) (a<b?a:b)
#define inf 100000000
using namespace std;int n,np,nc,m;
int map[105][105],jd[105],p[105],f[105];int Edmonds_karp(int s,int e)
{int i,j;queue <int > q;int a,b;for(i=0;i<=n+1;i++)p[i]=-1;f[0]=inf;q.push(s);while(!q.empty()){b=q.front ();q.pop();if(b==e)break;for(i=0;i<=n+1;i++){if(p[i]==-1&&map[b][i]>0){f[i]=min(map[b][i],f[b]);p[i]=b;q.push(i);}}}if(p[e]==-1)return -1;else return f[e];
}int maxflow(int s,int e)
{int i,j;int a,ans=0;a=Edmonds_karp(s,e);while(a!=-1){int k=e,min=inf;while(k!=s){map[p[k]][k]-=a;map[k][p[k]]+=a;k=p[k];}ans+=a;a=Edmonds_karp(s,e);}return ans;
}int main()
{int i,j;int a,b,c,d,f;char z,x,y;while(cin>>n>>np>>nc>>m){memset(map,0,sizeof map);for(i=1;i<=m;i++){cin>>z>>a>>x>>b>>y>>c;map[a+1][b+1]+=c;}for(i=1;i<=np;i++){cin>>z>>d>>x>>f;map[0][d+1]+=f;}for(i=1;i<=nc;i++){cin>>z>>d>>x>>f;map[d+1][n+1]+=f;}cout<<maxflow(0,n+1)<<endl;}return 0;
}
Dinic算法
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#define inf 100000000
#define min(a,b) (a<b?a:b)
using namespace std;int n,np,nc,m;
int map[105][105],cs[105];int bfs()
{int i,j;queue <int > q;int a,b;memset(cs,-1,sizeof cs);cs[0]=0;q.push(0);while(!q.empty()){b=q.front ();q.pop();for(i=0;i<=n+1;i++){if(cs[i]==-1&&map[b][i]>0){cs[i]=cs[b]+1;q.push(i);}}}if(cs[n+1]==-1)return 0;else return 1;}int dfs(int s,int mf)
{int i,j;int a,b;if(s==n+1)return mf;for(i=0;i<=n+1;i++){if(cs[i]==cs[s]+1&&map[s][i]>0&&(a=dfs(i,min(mf,map[s][i])))){map[s][i]-=a;map[i][s]+=a;return a;}}return 0;
}int main()
{int i,j;int a,b,c,d,f;while(cin>>n>>np>>nc>>m){memset(map,0,sizeof map);for(i=1;i<=m;i++){scanf(" (%d,%d)%d",&a,&b,&c);map[a+1][b+1]+=c;}for(i=1;i<=np;i++){scanf(" (%d)%d",&d,&f);map[0][d+1]+=f;}for(i=1;i<=nc;i++){scanf(" (%d)%d",&d,&f);map[d+1][n+1]+=f;}int ans=0,sum;while(bfs()){while(sum=dfs(0,inf))ans+=sum;}cout<<ans<<endl;}return 0;
}
转载于:https://www.cnblogs.com/wzjhoutai/p/7340345.html
POJ 1459 Power Network相关推荐
- POJ 1459 -- Power Network(最大流, 建图)
题目链接 Description A power network consists of nodes (power stations, consumers and dispatchers) conne ...
- POJ - 1459 Power Network(网络流-最大流)
题目链接:点击查看 题目大意:题意属实恶心,借用别的大佬的题意: 题目描述 一个电网包含一些结点(电站.消费者.调度站),这些结点通过电线连接.每个结点 uu 可能被供给 s(u) 的电能, s(u) ...
- 初涉网络流 POJ 1459 Power Network
怒搞一下午网络流,又去我一块心病. 从2F到SAP再到Dinic最终过掉了. 但是书上说Dinic的时间复杂度为v*v*e.感觉也应该超时的啊,但是过掉了,好诡异. 后两种算法都是在第一种的基础上进行 ...
- Poj(1459),最大流,EK算法
题目链接:http://poj.org/problem?id=1459 Power Network Time Limit: 2000MS Memory Limit: 32768K Total Su ...
- Power Network POJ - 1459(EK算法模板+详解)
题意: 总共有a个节点,其中有发电站b个.用户c个和调度器a-b-c个三种节点,每个发电站有一个最大发电量,每个用户有个最大接受电量,现在有d条有向边,边有一个最大的流量代表,最多可以流出这么多电,现 ...
- 【POJ - 1459】Power Network(网络流最大流,建图)
题干: A power network consists of nodes (power stations, consumers and dispatchers) connected by power ...
- [Poj 1459] 网络流(一) {基本概念与算法}
{ 凸包的内容还欠整理 先来侃侃一个月以前就想写写的网络流 本文介绍网络流 网络流的算法 及其应用 这些问题没事想想还是很有意思的 } ================================ ...
- POJ1459 Power Network —— 最大流
题目链接:https://vjudge.net/problem/POJ-1459 Power Network Time Limit: 2000MS Memory Limit: 32768K Tot ...
- 第二十七课:Power Network Synthesis(PNS)
总览 前面完成了IO pad 及macro cell的placement及congestion的消除,本节课开始说明PG network的放置并满足congestion与timing delay: 整 ...
最新文章
- Logstash(三)filter插件简介
- python 运算符重载_零基础小白Python入门必看:面向对象之典型魔术方法
- 在AWS Lambda上运行脚本语言:PHP、Ruby和Go(外文翻译)
- Java:自定义异常处理类
- 【NLP-ChatBot】我们熟悉的聊天机器人都有哪几类?
- SAP概念之Client(集团)
- mysql 会用文件系统吗_MySQL的文件系统_MySQL
- python easygui_Python里的easygui库
- 如何高效学习java呢?
- P3007 [USACO11JAN]大陆议会The Continental Cowngress(2-SAT)
- Java通过反射机制修改类中的私有属性的值
- android 模拟器优化,Android模拟器大幅优化 为开发者谋福利
- 外贸客户类型及跟进策略、找客户渠道
- 使用WinDbg分析Dump文件(蓝屏示例)
- 图片后缀名批量快速修改
- 世界主要的11种气候类型特点及分布
- 计算机二级证一定要优秀吗,计算机二级需要优秀吗 如何拿拿到优秀成绩
- NLP工具——Stanza依存关系含义详解
- licecap图片区域问题
- 对抗网络之PG-GAN,无条件下生成更真实的人脸图像