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

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. nginx - ssl 配置 - globelsign ssl

    前提: 3个文件 - domain.csr.domain.key.xxx.cer 简述: 1. 本地生成 .key文件  [附件] 2. 再利用key文件,生成csr(certificate Secu ...

  2. 省常中模拟 Test3 Day2

    matrix 找规律 题意:给定一个 N*N 的只有 0 和 1 的矩阵,有 Q 个操作,分三种:1. 将某行上的所有数字取反:2. 将某列上的所有数字取反:3. 输出 sum{ a[i][j]*a[ ...

  3. FFMPEG 库移植到 VC 需要的步骤

    在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步.(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http: ...

  4. ActionBarSherlock的学习笔记(四) ------------ ActionBarSherlock中的搜索及SearchView的使用

    在使用ActionBarSherlock定义app的头部操作时,会经常看见搜索的动作,本文主要介绍一下搜索是如何实现的. 1. SearchView 是搜索的核心组件,具体介绍请参考Android官方 ...

  5. [Papers]NSE, $\p_3u$, Lebesgue space [Cao, DCDSA, 2010]

    $$\bex \p_3\bbu\in L^p(0,T;L^q(\bbR^3)),\quad \frac{2}{p}+\frac{3}{q}=2,\quad \frac{27}{16}\leq q\le ...

  6. [Everyday Mathematics]20150114

    设 $a_0$, $d$ 给定, $a_k=a_0+kd$, $k=0,1,\cdots,n$. 试求如下 $n+1$ 阶行列式的值: $$\bex \sev{\ba{ccccc} a_0&a ...

  7. UITextView 相关知识点

    1.得到UITextView的高度 - (CGRect)contentSizeRectForTextView:(UITextView *)textView { [textView.layoutMana ...

  8. [Irving] SQL 2005/SQL 2008 备份数据库并自动删除N天前备份的脚本

    以下为SQL脚本,本人以执行计划来调用,所以改成了执行命令,大家可根据自己需要改为存储过程使用 )='E:\MsBackUp\SqlAutoBackup\' --备份路径; --备份类型为全备,1为差 ...

  9. 《Python CookBook2》 第一章 文本 - 测试一个对象是否是类字符串 && 字符串对齐

    测试一个对象是否是类字符串 任务 有时候需要测试一个对象,尤其是当你在写一个函数或者方法的时候,经常需要测试传入的参数是否是一个字符串. 解决方案 利用内建的isinstance 和basestrin ...

  10. Fitnesse+RestFixture:Web服务回归测试利器

    RestFixture是Fitness的一个测试REST服务的插件,用于调用标准的http GET/POST等请求方法,并可以用XPath语法和Javascript语法检验http响应.本文介绍安装运 ...