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

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. LA 3357 (递推 找规律) Pinary

    n位不含前导零不含连续1的数共有fib(n)个,fib(n)为斐波那契数列. 所以可以预处理一下fib的前缀和,查找一下第n个数是k位数,然后再递归计算它是第k位数里的多少位. 举个例子,比如说要找第 ...

  2. IIS6配置Asp.net MVC运行环境

    Windows server 2003 + IIS6 搭建Asp.net MVC运行环境 1.安装.Net Framework4.0. 下载地址: http://www.microsoft.com/z ...

  3. 8款PHP调试工具

    Web 开发并不是一项轻松的任务,有超级多服务端脚本语言提供给开发者,但是当前 PHP 因为具有额外的一些强大的功能而越来越流行.PHP 是最强大的服务端脚本语言之一,同时也是 web 开发者和设计者 ...

  4. [反汇编练习] 160个CrackMe之003

    [反汇编练习] 160个CrackMe之003. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  5. Sublime-text markdown with Vim mode and auto preview

    说明 最近看到markdown相关的东西,被其书写方式吸引,其实以前就在找这种类似的工具,但是也没找到,由于习惯了Vim,可Vim不支持markdown预览,这点可能不是很好,于是找到Sublime- ...

  6. 【C#学习笔记】载入图片并居中

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. 【转】开始iOS 7中自动布局教程(一)

    原文网址:http://www.cocoachina.com/industry/20131203/7462.html 原文:Beginning Auto Layout Tutorial in iOS ...

  8. MySQL基础之第7章 索引

    第7章 索引 MySQL中,所有的数据类型都可以被索引,包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等. 7.1.索引简介 7.1.1.索引的含义和特点 BTREE索引,HASH索 ...

  9. android Vibrator 使用

    private Vibrator vibrator; 取得震动服务的句柄 vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); 或者 vi ...

  10. Linux基本命令(5)管理使用者和设立权限的命令

    管理使用者和设立权限的命令 命令 说明 命令 说明 chmod 用来改变权限 useradd 用来增加用户 su 用来修改用户     5.1 chmod命令 chmod命令用来改变许可权限.读取.写 ...