<题目链接>

题目大意:
给出 n 个点,其中包括 np个发电站,nc 个消费者, 剩下的全部都是中转点,再给出 这些点中的m 条边,代表这两点间的最大传输电量,并且给出发电站的最大发送电量,以及消费者的最大承受电量,求所有消费者所能得到的最大电量。

解题分析:
本题发电站可以看成源点,消费者看成汇点,由于可能有多个源点和汇点,因此我们可以建立一个超级源点和超级汇点,超级源点与所有发电站直接相连,容量为每个发电站的最大容量,超级汇点与所有消费者相连,容量为每个消费者的最大容量。

#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;

int n,m,np,nc,s,e;
][];
],pre[];
bool bfs(){
    memset(vis,,sizeof(vis));
    memset(pre,,sizeof(pre));
    vis[s]=;
    queue<int>q;
    q.push(s);
    while(!q.empty()){
        int now=q.front();
        q.pop();
        if(now==e)return true;
        ;i<=n+;i++){
            if(!vis[i]&&mpa[now][i]){
                q.push(i);
                vis[i]=;
                pre[i]=now;
            }
        }
    }
    return false;
}
int Max_flow(){
    ;
    while(true){
        if(!bfs())return ans;
        int mn=0x3f3f3f3f;
        for(int i=e;i!=s;i=pre[i]){
            mn=min(mn,mpa[pre[i]][i]);
        }
        for(int i=e;i!=s;i=pre[i]){
            mpa[pre[i]][i]-=mn;
            mpa[i][pre[i]]+=mn;
        }
        ans+=mn;
    }
}
/*--以上是Ek算法模板--*/
int main(){
    while(scanf("%d%d%d%d",&n,&np,&nc,&m)!=EOF){
        memset(mpa,,sizeof(mpa));
        ;i<=m;i++){
            int a,b,c;
            /*
            scanf("%s",ss);
            sscanf(ss,"(%d,%d)%d",&a,&b,&c);
            map[a][b]=c;               //也可以用这种方法输入
            */
            while(getchar()!='(');     //注意这里的输入格式,也可以用cin简化输入
            scanf("%d,%d)%d",&a,&b,&c);
            mpa[a][b]+=c;
        }
        while(np--){
            int a,b;
            while(getchar()!='(');
            scanf("%d)%d",&a,&b);
            mpa[n][a]=b;
        }
        while(nc--){
            int a,b;
            while(getchar()!='(');
            scanf("%d)%d",&a,&b);
            mpa[a][n+]=b;
        }
        s=n,e=n+;
        printf("%d\n",Max_flow());
    }
    ;
}

2018-09-29

POJ 1459 - Power Network 【Ek-最大流】的更多相关文章

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

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

  2. POJ - 1459 Power Network(最大流)(模板)

    1.看了好久,囧. n个节点,np个源点,nc个汇点,m条边(对应代码中即节点u 到节点v 的最大流量为z) 求所有汇点的最大流. 2.多个源点,多个汇点的最大流. 建立一个超级源点.一个超级汇点,然 ...

  3. POJ 1459 Power Network(网络最大流,dinic算法模板题)

    题意:给出n,np,nc,m,n为节点数,np为发电站数,nc为用电厂数,m为边的个数.      接下来给出m个数据(u,v)z,表示w(u,v)允许传输的最大电力为z:np个数据(u)z,表示发电 ...

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

  5. poj 1459 Power Network

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

  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 : 最大网络流 dinic算法实现

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

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

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

  10. POJ 1459 Power Network 最大流(Edmonds_Karp算法)

    题目链接: http://poj.org/problem?id=1459 因为发电站有多个,所以需要一个超级源点,消费者有多个,需要一个超级汇点,这样超级源点到发电站的权值就是发电站的容量,也就是题目 ...

随机推荐

  1. SQL Server管理员必备技能之性能优化

    SQL Server管理员必备技能之性能优化 高文龙关注1人评论1171人阅读2017-09-22 08:27:41 SQL Server 作为企业必不可少的服务之一,所以对于管理员的日常运维是一个极 ...

  2. Java的动手动脑(四)

    日期:2018.10.18 星期四 博客期:019 Part1:回答为啥会报错 答案:当然会报错啦!因为平常的编程过程中,系统会对我们写的类自动生成一个默认无参形式的构造方法,类似于C++中的体制!这 ...

  3. Selenium WebDriver中鼠标事件

    鼠标点击操作  鼠标点击事件有以下几种类型:  清单 1. 鼠标左键点击   Actions action = new Actions(driver);action.click();// 鼠标左键在当 ...

  4. Nginx的核心功能及应用实战

    反向代理功能及配置: 反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给interne ...

  5. easyui实现背景图片半透明状态,悬浮在大背景之上

    首先是查找素材,使用AI将所需要的图案画出来,切记将图案的背景设置为所需要的透明状态.项目使用的是easyui架构 为啥加两个背景图呢,因为这样的布局最开始是给一个矩形框加上的背景图片,若是还使用矩形 ...

  6. 创建WIFI热点

    @echo off:beginecho 笔记本做无线WiFi程序(首次使用请先设置WiFi帐户.)echo 1.设置WiFi帐户,请按1echo 2.开启WiFi功能,请按2echo 3.闭关WiFi ...

  7. 牛客寒假算法基础集训营4 I题 Applese 的回文串

    链接:https://ac.nowcoder.com/acm/contest/330/I 来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如--判断一个字符串是不是回文串. ...

  8. 让Mysql支持Emoji表情,解决[Err] 1366 - Incorrect string value: '\xF0\xA3\x84\x83'

    mysql insert内容包含表情或者unicode码时候,插入Mysql时失败了,报如下异常: java.sql.SQLException: Incorrect string value: '\x ...

  9. Web的几种上传方式总结

    问题 文件上传在WEB开发中应用很广泛. 文件上传是指将本地图片.视频.音频等文件上传到服务器上,可以供其他用户浏览或下载的过程. 以下总结了常见的文件(图片)上传的方式和要点处理. 表单上传 这是传 ...

  10. TFS 生成任务报错:目录不是空的

    转到代理目录下,将生成文件夹清空,重新启动生成任务即可