题意:有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相关推荐

  1. POJ 1459 -- Power Network(最大流, 建图)

    题目链接 Description A power network consists of nodes (power stations, consumers and dispatchers) conne ...

  2. POJ - 1459 Power Network(网络流-最大流)

    题目链接:点击查看 题目大意:题意属实恶心,借用别的大佬的题意: 题目描述 一个电网包含一些结点(电站.消费者.调度站),这些结点通过电线连接.每个结点 uu 可能被供给 s(u) 的电能, s(u) ...

  3. 初涉网络流 POJ 1459 Power Network

    怒搞一下午网络流,又去我一块心病. 从2F到SAP再到Dinic最终过掉了. 但是书上说Dinic的时间复杂度为v*v*e.感觉也应该超时的啊,但是过掉了,好诡异. 后两种算法都是在第一种的基础上进行 ...

  4. Poj(1459),最大流,EK算法

    题目链接:http://poj.org/problem?id=1459 Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Su ...

  5. Power Network POJ - 1459(EK算法模板+详解)

    题意: 总共有a个节点,其中有发电站b个.用户c个和调度器a-b-c个三种节点,每个发电站有一个最大发电量,每个用户有个最大接受电量,现在有d条有向边,边有一个最大的流量代表,最多可以流出这么多电,现 ...

  6. 【POJ - 1459】Power Network(网络流最大流,建图)

    题干: A power network consists of nodes (power stations, consumers and dispatchers) connected by power ...

  7. [Poj 1459] 网络流(一) {基本概念与算法}

    { 凸包的内容还欠整理 先来侃侃一个月以前就想写写的网络流 本文介绍网络流 网络流的算法 及其应用 这些问题没事想想还是很有意思的 } ================================ ...

  8. POJ1459 Power Network —— 最大流

    题目链接:https://vjudge.net/problem/POJ-1459 Power Network Time Limit: 2000MS   Memory Limit: 32768K Tot ...

  9. 第二十七课:Power Network Synthesis(PNS)

    总览 前面完成了IO pad 及macro cell的placement及congestion的消除,本节课开始说明PG network的放置并满足congestion与timing delay: 整 ...

最新文章

  1. Logstash(三)filter插件简介
  2. python 运算符重载_零基础小白Python入门必看:面向对象之典型魔术方法
  3. 在AWS Lambda上运行脚本语言:PHP、Ruby和Go(外文翻译)
  4. Java:自定义异常处理类
  5. 【NLP-ChatBot】我们熟悉的聊天机器人都有哪几类?
  6. SAP概念之Client(集团)
  7. mysql 会用文件系统吗_MySQL的文件系统_MySQL
  8. python easygui_Python里的easygui库
  9. 如何高效学习java呢?
  10. P3007 [USACO11JAN]大陆议会The Continental Cowngress(2-SAT)
  11. Java通过反射机制修改类中的私有属性的值
  12. android 模拟器优化,Android模拟器大幅优化 为开发者谋福利
  13. 外贸客户类型及跟进策略、找客户渠道
  14. 使用WinDbg分析Dump文件(蓝屏示例)
  15. 图片后缀名批量快速修改
  16. 世界主要的11种气候类型特点及分布
  17. 计算机二级证一定要优秀吗,计算机二级需要优秀吗 如何拿拿到优秀成绩
  18. NLP工具——Stanza依存关系含义详解
  19. licecap图片区域问题
  20. 对抗网络之PG-GAN,无条件下生成更真实的人脸图像

热门文章

  1. win7计算机用户文件,win7系统用户文件夹改名的图文教程
  2. 计算机专业的学生怎么可以连计算机发展史都不知道
  3. 局域网远程维护工具DAMEWARE NT 需要开通IPC和ADMIN通道
  4. Nginx 配置参数
  5. oracleXE版本相关问题整理
  6. 【SSH网上商城项目实战03】使用EasyUI搭建后台页面框架
  7. linux 测试网络延迟
  8. 深入浅出ClassLoader(译)
  9. 【原创】关于java中的lock
  10. OCA读书笔记(11) - 实现Oracle数据库审计