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: ...
随机推荐
- [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率
单变量线性回归(Linear Regression with One Variable) 什么是线性回归?线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方 ...
- css3 知识点积累
-moz- 兼容火狐浏览器-webkit- 兼容chrome 和safari1.角度 transform:rotate(30dge) 水平线与div 第四象限30度 transform: ...
- wdCP V3.2
wdCP是什么?关于wdCP更多的介绍,可看http://www.wdlinux.cn/wdcp/安装前先去体验下,看演示站吧http://www.wdlinux.cn/bbs/thread-5285 ...
- Lagom 官方文档之随手记
引言 Lagom是出品Akka的Lightbend公司推出的一个微服务框架,目前最新版本为1.6.2.Lagom一词出自瑞典语,意为"适量". https://www.lagomf ...
- 20210107 - python 的Excel自动化
1.前置条件:用python, 开发工具pycharm 2.安装包: pip install openpyxl, 该包支持:xlsx, 但是不支持xlrd.xlwt格式的文件 3.概念介绍: 一个e ...
- 附录 A ES6附加特性
目录 模板字符串 解构 对象的解构 数组的解构 增强版对象字面量 模板字符串 const student = { name: "Wango", age: 24, } // 普通字符 ...
- ASP.NET Core 3.1 中间件
参考微软官方文档 : https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-3.1 ...
- 【Java基础】常用类
常用类 字符串相关的类 String类:代表字符串,使用一对 "" 引起来表示. public final class String implements java.io.Seri ...
- 计算机考研真题 ZOJ问题
题目描述 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或 ...
- oracle 11g 安装与卸载
安装 点击是,这是位数不一致,但可用. 桌面类――这种安装方式一般适用于台式机和笔记本.它包含一个最小数据库和最低的配置需求. 服务器类――这种安装方式适用于服务器,例如,它会向您提供数据中心和用于支 ...