初涉网络流。改日再写一些概念性的介绍。

ek算法可作为模板使用。

#include <iostream>
#include <queue>

using namespace std;

#define MAXN 105
#define inf 1 << 20

bool used[MAXN];
int pre[MAXN];
int map[MAXN][MAXN];
int vertices, power_stations, consumers, edges;

int EK()
{
    int i, res = 0, now, min;
    queue<int>q;
    while (1)
    {
        memset(pre, -1, sizeof(pre));
        memset(used, 0, sizeof(used));
        while (!q.empty())
            q.pop();
        q.push(0);
        used[0] = true;
        while (!q.empty())
        {
            now = q.front();
            q.pop();
            if (now == vertices + 1)
                break;
            for (i = 0; i <= vertices + 1; i++)
            {
                if (!used[i] && map[now][i]>0)
                {
                    pre[i] = now;
                    used[i] = true;
                    q.push(i);
                }
            }
        }
        if (!used[vertices + 1])
            break;
        min = inf;
        for (i = vertices + 1; i != 0; i = pre[i])
        if (map[pre[i]][i]<min)
            min = map[pre[i]][i];
        res = res + min;
        for (i = vertices + 1; i != 0; i = pre[i])
        {
            map[pre[i]][i] = map[pre[i]][i] - min;
            map[i][pre[i]] = map[i][pre[i]] + min;
        }
    }
    return res;
}

int main()
{

while (cin >> vertices >> power_stations >> consumers >> edges)
    {
        memset(map, 0, sizeof(map));
        for (int i = 0; i < edges; i++)
        {
            char waste;
            int from, to, capacity;
            cin >> waste >> from >> waste >> to >> waste >> capacity;
            map[from+1][to+1] = capacity;
        }

int super_s, super_t;
        super_s = 0, super_t = vertices + 1;
        //vertices += 2;

for (int i = 0; i < power_stations; i++)
        {
            char waste;
            int to, capacity;
            cin >> waste >> to >> waste >> capacity;
            map[super_s][to+1] = capacity;
        }

for (int i = 0; i < consumers; i++)
        {
            char waste;
            int from, capacity;
            cin >> waste >> from >> waste >> capacity;
            map[from+1][super_t] = capacity;
        }
        cout << EK() << endl;
    }
    return 0;
}

poj1459的更多相关文章

  1. POJ1459 最大网络流

    问题: POJ1459 涉及内容:最大网络流 分析: 本题问题看似非常复杂,实际上可以转化为单源点单汇点的最大网络流问题. 1)因为电量只在发电站产生,故增加源点S,构建从S到每个发电站的有向边,边的 ...

  2. POJ1459 Power Network 网络流 最大流

    原文链接http://www.cnblogs.com/zhouzhendong/p/8326021.html 题目传送门 - POJ1459 题意概括 多组数据. 对于每一组数据,首先一个数n,表示有 ...

  3. POJ-1459 Power Network(最大流)

    https://vjudge.net/problem/POJ-1459 题解转载自:優YoU http://user.qzone.qq.com/289065406/blog/1299339754 解题 ...

  4. POJ-1459 Power Network---最大流

    题目链接: https://cn.vjudge.net/problem/POJ-1459 题目大意: 简单的说下题意(按输入输出来讲,前面的描述一堆的rubbish,还用来误导人),给你n个点,其中有 ...

  5. POJ1459 Power Network —— 最大流

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

  6. POJ-1459(最大流+EK算法)

    Power Network POJ-1459 这题值得思索的就是特殊的输入,如何输入一连串字符.这里采用的方法是根据输入已知的输入格式,事先预定好要接受的数据类型. 这里套用的板子也是最大流的模板,但 ...

  7. ACM/ICPC 之 电力网络-EK算法(POJ1459)

    按照电站发电(从源点到电站),消费者消费(从消费者到汇点)的想法构建网络,以下是EK解法 //网络流EK算法 //Time:922Ms memory:224K #include<iostream ...

  8. poj1459 Power Network (多源多汇最大流)

    Description A power network consists of nodes (power stations, consumers and dispatchers) connected ...

  9. POJ1459 Power Network(网络最大流)

                                         Power Network Time Limit: 2000MS   Memory Limit: 32768K Total S ...

随机推荐

  1. css配合js模拟的select下拉框

    css配合js模拟的select下拉框 <!doctype html> <html> <head> <meta charset="utf-8&quo ...

  2. Html5大文件断点续传

    大文件分块   一般常用的web服务器都有对向服务器端提交数据有大小限制.超过一定大小文件服务器端将返回拒绝信息.当然,web服务器都提供了配置文件可能修改限制的大小.针对iis实现大文件的上传网上也 ...

  3. Web网站的性能测试工具

    随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生服务器 ...

  4. Jquery 弹出提示框输入插件 apprise 修改中文按钮以及使用说明

      apprise的使用非常简单,引入js脚本和css <script type="text/javascript" src="/js/apprise-1.5.fu ...

  5. 【iOS-Cocos2d游戏开发之四】独自收集Cocos2d提供的字体!共57种(有对照的字体图)

    本站文章均为李华明Himi原创,转载务必在明显处注明:(作者新浪微博:@李华明Himi) 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-c ...

  6. ssl选购

    上机实践,参考了: http://www.lovelucy.info/nginx-ssl-certificate-https-website.html http://nginx.org/cn/docs ...

  7. linux下/etc/passwd和/etc/shadow文件

    /etc/passwd文件中保存的是用户的账号信息,而/etc/shadow文件中保存的是用户的口令信息. 一 /etc/passwd 一个用户对应着该文件中一行记录,一行记录由若干个字段组成,字段之 ...

  8. 【C#学习笔记】结构体使用

    using System; namespace ConsoleApplication { struct _st { public string name; public int age; } clas ...

  9. 数据库语言(二):SQL语法实例整理

    连接表达式: select * from student join takes on student.ID = takes.ID; 通过on后面的谓词作为连接条件,相同的属性可以出现两次,也就是等价于 ...

  10. ubuntun安装ssh,并远程链接服务器操作

    SSH是一种以安全.加密方式连接远程主机或服务器的方法.SSH服务器接受从有SSH的客户机的连接,允许操作者象在本地一样地登录系统.你可以用SSH从远程运行shell和X程序. (1)安装SSH服务器 ...