power network 电网——POJ1459
Time Limit: 2000MS | Memory Limit: 32768K | |
Total Submissions: 27282 | Accepted: 14179 |
Description

An example is in figure 1. The label x/y of power station u shows that p(u)=x and pmax(u)=y. The label x/y of consumer u shows that c(u)=x and cmax(u)=y. The label x/y of power transport line (u,v) shows that l(u,v)=x and lmax(u,v)=y. The power consumed is Con=6. Notice that there are other possible states of the network but the value of Con cannot exceed 6.
Input
Output
Sample Input
2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)20
7 2 3 13 (0,0)1 (0,1)2 (0,2)5 (1,0)1 (1,2)8 (2,3)1 (2,4)7
(3,5)2 (3,6)5 (4,2)7 (4,3)5 (4,5)1 (6,0)5
(0)5 (1)2 (3)2 (4)1 (5)4
Sample Output
15
6
Hint
Source
while(scanf("%d%d%d%d",&n,&np,&nc,&m))
”
while(scanf("%d%d%d%d",&n,&np,&nc,&m)==4)
——————————————————————————————————————————————————————————
1 #include<cstdio>
2 #include<iostream>
3 #include<cstring>
4 #include<vector>
5 #include<queue>
6
7 using namespace std;
8 int n,np,nc,m;
9 int map[105][105];
10 bool vis[105];
11 int lays[105];
12 bool bfs()
13 {
14 queue<int>q;
15 memset(lays,-1,sizeof(lays));
16 q.push(n);
17 lays[n]=0;
18 while(!q.empty())
19 {
20 int u=q.front();
21 q.pop();
22 for(int i=0;i<=n+1;i++)
23 if(map[u][i]>0&&lays[i]==-1)
24 {
25 lays[i]=lays[u]+1;
26 if(i==n+1)return 1;
27 else
28 {
29 q.push(i);
30 }
31 }
32 }
33 return 0;
34 }
35 int dinic()
36 {
37 vector<int>q;
38 int maxf=0;
39 while(bfs())
40 {
41 q.push_back(n);
42 memset(vis,0,sizeof(vis));
43 vis[n]=1;
44 while(!q.empty())
45 {
46 int nd=q.back();
47 if(nd==n+1)
48 {
49 int minx=0x7fffffff,minn;
50 for(int i=1;i<q.size();i++)
51 {
52 int u=q[i-1],v=q[i];
53 if(map[u][v]<minx)
54 {
55 minx=map[u][v];
56 minn=u;
57 }
58 }
59 maxf+=minx;
60 for(int i=1;i<q.size();i++)
61 {
62 int u=q[i-1],v=q[i];
63 map[u][v]-=minx;
64 map[v][u]+=minx;
65 }
66 while(!q.empty()&&q.back()!=minn)
67 {
68 vis[q.back()]=0;
69 q.pop_back();
70 }
71 }
72 else
73 {
74 int i;
75 for(i=0;i<=n+1;i++)
76 {
77 if(map[nd][i]>0&&!vis[i]&&lays[i]==lays[nd]+1)
78 {
79 vis[i]=1;
80 q.push_back(i);
81 break;
82 }
83 }
84 if(i>n+1)q.pop_back();
85 }
86 }
87 }
88 return maxf;
89 }
90 int main()
91 {
92 char s[35];
93 while(scanf("%d%d%d%d",&n,&np,&nc,&m)==4)
94 {
95 memset(map,0,sizeof(map));
96 for(int i=0;i<m;i++)
97 {
98 int u,v,l;
99 scanf("%s",s);
100 sscanf(s,"(%d,%d)%d",&u,&v,&l);
101 map[u][v]+=l;
102 }
103 for(int i=0;i<np;i++)
104 {
105 int v,l;
106 scanf("%s",s);
107 sscanf(s,"(%d)%d",&v,&l);
108 map[n][v]+=l;
109 }
110 for(int i=0;i<nc;i++)
111 {
112 int v,l;
113 scanf("%s",s);
114 sscanf(s,"(%d)%d",&v,&l);
115 map[v][n+1]+=l;
116 }
117 printf("%d\n",dinic());
118 }
119
120 return 0;
121 }
power network 电网——POJ1459的更多相关文章
- POJ1459 Power Network —— 最大流
题目链接:https://vjudge.net/problem/POJ-1459 Power Network Time Limit: 2000MS Memory Limit: 32768K Tot ...
- poj1459 Power Network (多源多汇最大流)
Description A power network consists of nodes (power stations, consumers and dispatchers) connected ...
- POJ1459 Power Network(网络最大流)
Power Network Time Limit: 2000MS Memory Limit: 32768K Total S ...
- POJ1459 - Power Network
原题链接 题意简述 原题看了好几遍才看懂- 给出一个个点,条边的有向图.个点中有个源点,个汇点,每个源点和汇点都有流出上限和流入上限.求最大流. 题解 建一个真 · 源点和一个真 · 汇点.真 · 源 ...
- POJ1459:Power Network(多源点多汇点的最大流)
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 31086 Accepted: 15986 题 ...
- POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)
POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Networ ...
- Power Network(网络流最大流 & dinic算法 + 优化)
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 24019 Accepted: 12540 D ...
- Power Network 分类: POJ 2015-07-29 13:55 3人阅读 评论(0) 收藏
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 24867 Accepted: 12958 Descr ...
- poj 1459 Power Network : 最大网络流 dinic算法实现
点击打开链接 Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 20903 Accepted: ...
随机推荐
- SSRF之利用dict和gopher吊打Redis
SSRF之利用dict和gopher吊打Redis 写在前面 SSRF打Redis也是老生常谈的东西了,这里复现学习一下之前在xz看到某师傅写的关于SSRF利用dict和gopher打内网服务的文章, ...
- 这是一篇SQL注入文章
目录 注入原理: 1.寻找注入点的方式或注入的地方可能包括. 2.注入点判断方法. 3.注入分类. 数字型: 字符型: 搜索型: XX型(也叫其他型): 4.注入提交方式. 5.注入攻击类型与方式. ...
- hashmap有一个loadFactory为什么是0.75从泊松分布解析看看
简述: 写这篇文章是看到网上的一篇面试题,有面试官问hashmap有一个loadFactory为什么是0.75 我先解释一下 0.75上下文,当一个hashmap初始数组大小暂时不考虑扩容情况,初始 ...
- TurtleBot3使用课程-第一节a(北京智能佳)
目录 1.ROS设置(远程PC) 2 1.1 ROS安装和设置 2 1.1.1 设置source.list 2 1.1.2 键设置 2 1.1.3 ROS安装 2 1.1.4安装包构建的依赖关系 2 ...
- 第14章节 BJROBOT karto 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】
建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平 ...
- 有哪些适合个人开发的微信小程序
微信小程序提供了一个简单.高效的应用开发框架和丰富的组件及API,帮助开发者在微信中开发具有原生 APP 体验的服务. 微信小程序支持采用云开发模式,无需后台服务,十分的方便快捷,适合个人开发一些工具 ...
- MVC和MVVM的差别
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...
- 【剑指 Offer】09.用两个栈实现队列
题目描述 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , 分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素,del ...
- Openstack 启动一个实例(九)
Openstack 启动一个实例(九) 创建一个提供者网络: # 创建一个提供者网络: openstack network create --share --external --provider-p ...
- wpf 中 Ellipse 对象对动画性能的影响
vs2019 .NetFramework 4.8 win10-64 1909 接手一个wpf项目,某窗口中包含大量的 Shape 对象(线,矩形,圆形等). 这些内容要匀速的向左平移,类似于游戏&qu ...