不可以理解的是,测评站上的0ms是怎么搞出来的。

这一题在建立超级源点和超级汇点后就变得温和可爱了。其实它本身就温和可爱。对比了能够找到的题解:

(1)艾德蒙·卡普算法(2)迪尼克算法(3)改进版艾德蒙·卡普算法(MY METHOD)

不去管那个0ms的吧,那么(3)号算法最为美妙【它的别名是:ISAP】,时间可观。

这个就算是一个ISAP的模板吧(除了输入的难看的几行外,其余均是标准的大米饼牌模板!)

 #include<stdio.h>
#include<algorithm>
#include<queue>
#include<cstring>
#define go(i,a,b) for(int i=a;i<=b;i++)
#define fo(i,a,x) for(int i=a[x],v=e[i].v;i>-1;i=e[i].next,v=e[i].v)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;const int N=
;
struct E{int v,next,flow,cap;}e[N*
N];
int n,n_power,n_user,m,S,T,head[N],k=
,d[N];
int
num[N],cur[N],preE[N],preN[N];
void ADD(int u,int v,int flow,int cap){e[k]=(E){v,head[u],flow,cap};head[u]=k++;}
void
BFS()
{
queue<int>q;bool vis[N]={};q.push(T);d[T]=
;
while(!
q.empty())
{
int u=
q.front();q.pop();
fo(i,head,u)if(!e[i].cap&&!
vis[v])
vis[v]=,d[v]=d[u]+
,q.push(v);
}
}
int aug(){int u,a=
;
u=T;while(u!=S){int i=preE[u];a=min(a,e[i].cap-e[i].flow);u=
preN[u];}
u=T;while(u!=S){int i=preE[u];e[i].flow+=a;e[i^].flow-=a;u=preN[u];}return
a;}
int main(){while(~scanf("%d%d%d%d",&n,&n_power,&n_user,&
m))
{
S=;T=n+;char _;mem(head,-
);
go(i,,m){int u,v,cap;scanf(" %c%d%c%d%c%d",&_,&u,&_,&v,&_,&
cap);
u++,v++;ADD(u,v,,cap);ADD(v,u,,
);}
go(i,,n_power){int v,cap;scanf(" %c%d%c%d",&_,&v,&_,&
cap);
v++;ADD(S,v,,cap);ADD(v,S,,
);}
go(i,,n_user){int u,cap;scanf(" %c%d%c%d",&_,&u,&_,&
cap);
u++;ADD(u,T,,cap);ADD(T,u,,);}BFS();mem(num,
); go(i,,n+)num[d[i]]++,cur[i]=head[i];
int u=S,flow=
;
while(d[S]<T+
)
{
u==T?flow+=aug(),u=S:;bool retreat=
;
fo(i,cur,u) if(e[i].cap>e[i].flow&&d[u]==d[v]+
)
{retreat=;cur[u]=preE[v]=i;preN[v]=u;u=v;break
;} if(!retreat)continue; int Min=T;fo(i,head,u){if(e[i].cap>e[i].flow)Min=min(Min,d[v]);}
if(!(--num[d[u]]))break;num[d[u]=Min+]++
;
cur[u]=head[u];u==S?:u=
preN[u];
}
printf("%d\n"
,flow);
}return ;}//Paul_Guderian

【改进版艾德蒙·卡普算法】

网络流两个学习要点:学会转化问题,学会几个模型?你是在质疑神奇大米饼的权威吗?那就给你个大米饼!

ZBH不给我玩以撒的结合…我写了这篇博客来表达愤怒!

【POJ 1459 power network】的更多相关文章

  1. 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 ...

  2. poj 1459 Power Network

    题目连接 http://poj.org/problem?id=1459 Power Network Description A power network consists of nodes (pow ...

  3. poj 1459 Power Network【建立超级源点,超级汇点】

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 25514   Accepted: 13287 D ...

  4. poj 1459 Power Network : 最大网络流 dinic算法实现

    点击打开链接 Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 20903   Accepted:  ...

  5. POJ 1459 Power Network(网络流 最大流 多起点,多汇点)

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 22987   Accepted: 12039 D ...

  6. 2018.07.06 POJ 1459 Power Network(多源多汇最大流)

    Power Network Time Limit: 2000MS Memory Limit: 32768K Description A power network consists of nodes ...

  7. 网络流--最大流--POJ 1459 Power Network

    #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #incl ...

  8. POJ 1459 - Power Network 【Ek-最大流】

    <题目链接> 题目大意:给出 n 个点,其中包括 np个发电站,nc 个消费者, 剩下的全部都是中转点,再给出 这些点中的m 条边,代表这两点间的最大传输电量,并且给出发电站的最大发送电量 ...

  9. poj 1459 Power Network(增广路)

    题目:http://poj.org/problem?id=1459 题意:有一些发电站,消耗用户和中间线路,求最大流.. 加一个源点,再加一个汇点.. 其实,过程还是不大理解.. #include & ...

随机推荐

  1. SQL数据库开发中的一些经典代码

    1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as  2.数据库加密: ...

  2. python的项目结构

    项目结构 知识点 创建项目,编写 __init__ 文件 使用 setuptools 模块,编写 setup.py 和 MANIFEST.in 文件 创建源文件的发布版本 项目注册&上传到 P ...

  3. New UWP Community Toolkit - RangeSelector

    概述 前面 New UWP Community Toolkit 文章中,我们对 V2.2.0 版本的重要更新做了简单回顾,其中简单介绍了 RangeSelector,本篇我们结合代码详细讲解一下 Ra ...

  4. 同样是IT培训,为什么人家月薪过万,你才几千,问题在哪?!

    听过一句话"360行,行行转IT",虽然有些夸张,但也不难看出IT行业的火爆程度.从李总理提的"互联网+大数据"开始,中国的这场"互联网+" ...

  5. 《javascript设计模式与开发实践》阅读笔记(15)—— 装饰者模式

    装饰者模式 可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象.在程序开发中,许多时候都并不希望某个类天生就非常庞大,一次性包含许多职责.那么我们就可以使用装饰者模式. 代码例 ...

  6. 【JavaScript中typeof、toString、instanceof、constructor与in】

    JavaScript中typeof.toString.instanceof.constructor与in JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行 ...

  7. spring-oauth-server实践:授权方式四:client_credentials 模式的refresh_token?

    spring-oauth-server入门(1-13)授权方式四:client_credentials 模式的refresh_token? 有效期内的反复申请access_token获取失效日期不变! ...

  8. Spring Security入门(2-1)Spring Security - 重要的过滤器

    1.自定义的filter机制 如果要对Web资源进行保护,最好的办法莫过于Filter,要想对方法调用进行保护,最好的办法莫过于AOP. Acegi对Web资源的保护,就是靠Filter实现的.Ace ...

  9. python 爬取百度翻译进行中英互译

    感谢RoyFans 他的博客地址http://www.cnblogs.com/royfans/p/7417914.html import requests def py(): url = 'http: ...

  10. 使用Spring Initializr创建项目

    Spring initializr 是Spring 官方提供的一个很好的工具,可以用来用来创建一个Spring boot 的项目.可以选择使用Maven管理或者使用Gradle管理,还可以选择使用的编 ...