青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 18,  comments - 5,  trackbacks - 0
一、題目描述

Description

A power network consists of nodes (power stations, consumers and dispatchers) connected by power transport lines. A node u may be supplied with an amount s(u) >= 0 of power, may produce an amount 0 <= p(u) <= pmax(u) of power, may consume an amount 0 <= c(u) <= min(s(u),cmax(u)) of power, and may deliver an amount d(u)=s(u)+p(u)-c(u) of power. The following restrictions apply: c(u)=0 for any power station, p(u)=0 for any consumer, and p(u)=c(u)=0 for any dispatcher. There is at most one power transport line (u,v) from a node u to a node v in the net; it transports an amount 0 <= l(u,v) <= lmax(u,v) of power delivered by u to v. Let Con=Σuc(u) be the power consumed in the net. The problem is to compute the maximum value of Con.

An example is in figure 1. The label x/y of power station u shows that p(u)=x and pmax(u)=y. The label x/y of consumer u shows that c(u)=x and cmax(u)=y. The label x/y of power transport line (u,v) shows that l(u,v)=x and lmax(u,v)=y. The power consumed is Con=6. Notice that there are other possible states of the network but the value of Con cannot exceed 6.

Input

There are several data sets in the input. Each data set encodes a power network. It starts with four integers: 0 <= n <= 100 (nodes), 0 <= np <= n (power stations), 0 <= nc <= n (consumers), and 0 <= m <= n^2 (power transport lines). Follow m data triplets (u,v)z, where u and v are node identifiers (starting from 0) and 0 <= z <= 1000 is the value of lmax(u,v). Follow np doublets (u)z, where u is the identifier of a power station and 0 <= z <= 10000 is the value of pmax(u). The data set ends with nc doublets (u)z, where u is the identifier of a consumer and 0 <= z <= 10000 is the value of cmax(u). All input numbers are integers. Except the (u,v)z triplets and the (u)z doublets, which do not contain white spaces, white spaces can occur freely in input. Input data terminate with an end of file and are correct.

Output

For each data set from the input, the program prints on the standard output the maximum amount of power that can be consumed in the corresponding network. Each result has an integral value and is printed from the beginning of a separate line.

Sample Input

2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)20
7 2 3 13 (0,0)1 (0,1)2 (0,2)5 (1,0)1 (1,2)8 (2,3)1 (2,4)7
(3,5)2 (3,6)5 (4,2)7 (4,3)5 (4,5)1 (6,0)5
(0)5 (1)2 (3)2 (4)1 (5)4

Sample Output

15
6


二、分析
      增加點n為s,點n+1為t,求最大流,使用Push-Relabel算法,具體算法:最大流問題
三、代碼

 1#include<iostream>
 2using namespace std;
 3#define MAXN 202
 4int s, t;
 5int n, np, nc, m;
 6char str[50];
 7int c[MAXN][MAXN];
 8int f[MAXN][MAXN];
 9int e[MAXN];
10int h[MAXN];
11void push(int u, int v)
12{
13    int d = min(e[u], c[u][v] - f[u][v]);
14    f[u][v] += d;
15    f[v][u] = -f[u][v];
16    e[u] -= d;
17    e[v] += d;
18}

19bool relabel(int u)
20{
21    int mh = INT_MAX;
22    for(int i=0; i<n+2; i++)
23    {
24        if(c[u][i] > f[u][i])
25            mh = min(mh, h[i]);
26    }

27    if(mh == INT_MAX)
28        return false//殘留網絡中無從u出發的路
29    h[u] = mh + 1;
30    for(int i=0; i<n+2; i++)
31    {
32        if(e[u] == 0//已無余流,不需再次push
33            break;
34        if(h[i] == mh && c[u][i] > f[u][i]) //push的條件
35            push(u, i);
36    }

37    return true;
38}

39void init_preflow()
40{
41    memset(h, 0sizeof(h));
42    memset(e, 0sizeof(e));
43    h[s] = n+2;
44    for(int i=0; i<n+2; i++)
45    {
46        if(c[s][i] == 0)
47            continue;
48        f[s][i] = c[s][i];
49        f[i][s] = -f[s][i];
50        e[i] = c[s][i];
51        e[s] -= c[s][i];
52    }

53}

54void push_relabel()
55{
56    init_preflow();
57    bool flag = true//表示是否還有relabel操作
58    while(flag)
59    {
60        flag = false;
61        for(int i=0; i<n; i++)
62            if(e[i] > 0)
63                flag = flag || relabel(i);
64    }

65}

66int main()
67{
68    while(scanf("%d%d%d%d"&n, &np, &nc, &m) != EOF)
69    {
70        s = n; t = n+1;
71        memset(c, 0sizeof(c));
72        memset(f, 0sizeof(f));
73        while(m--)
74        {
75            scanf("%s"&str);
76            int u=0, v=0, z=0;
77            sscanf(str, "(%d,%d)%d"&u, &v, &z);
78            c[u][v] = z;
79        }

80        for(int i=0; i<np+nc; i++)
81        {
82            scanf("%s"&str);
83            int u=0, z=0;
84            sscanf(str, "(%d)%d"&u, &z);
85            if(i < np)
86                c[s][u] = z;
87            else if(i >= np && i < np + nc)
88                c[u][t] = z;
89        }

90        push_relabel();
91        printf("%d\n", e[t]);
92    }

93}
posted on 2009-06-24 19:38 Icyflame 閱讀(2128) 評論(1)  編輯 收藏 引用 所屬分類: 解題報告
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线999| 久久人人爽人人| 国产伦精品一区二区三区免费| 国产精品久久久久久久久果冻传媒 | 国产精品视频专区| 欧美精品乱码久久久久久按摩| 久久精品九九| 久久男人资源视频| 欧美在线在线| 欧美韩日一区二区三区| 国产精品伦子伦免费视频| 国产欧美一区二区色老头| 国产一区二区日韩精品欧美精品| 国产精品欧美日韩一区二区| 国产精品久久999| 国产日韩欧美一区二区三区四区| 国产一区二区三区的电影| 国产精品欧美日韩一区| 国产一区二区三区日韩欧美| 韩国一区二区在线观看| 一区二区欧美激情| 久久综合999| 久久精品夜色噜噜亚洲a∨ | 亚洲综合精品自拍| 午夜一区二区三区不卡视频| 在线一区欧美| 亚洲欧洲中文日韩久久av乱码| 午夜在线一区| 午夜国产精品视频| 激情久久一区| 女生裸体视频一区二区三区 | 久久久久国产精品www| 久久这里只精品最新地址| 欧美激情91| 国产日韩欧美综合一区| 亚洲精品在线视频观看| 午夜视频一区在线观看| 亚洲第一搞黄网站| 亚洲精品一品区二品区三品区| 欧美一级理论性理论a| 欧美jizzhd精品欧美巨大免费| 国产精品久久久久久久久借妻 | 欧美黄色片免费观看| 国产亚洲欧美激情| 一区二区免费在线播放| 欧美激情国产日韩| 久久大综合网| 国产日韩欧美综合精品| 亚洲欧美日韩电影| 欧美电影免费观看高清完整版| 香港成人在线视频| 国产精品免费在线| 制服丝袜激情欧洲亚洲| 欧美激情精品久久久久久黑人| 性伦欧美刺激片在线观看| 欧美性天天影院| 亚洲少妇中出一区| 亚洲精品视频在线观看免费| 欧美mv日韩mv国产网站| 亚洲韩国一区二区三区| 欧美风情在线观看| 久久综合影视| 亚洲国产精品福利| 欧美激情亚洲自拍| 欧美mv日韩mv国产网站| 亚洲伦理在线观看| 亚洲国产专区| 欧美成人精品三级在线观看| 亚洲国产清纯| 亚洲欧洲免费视频| 欧美视频在线观看 亚洲欧| 亚洲精品一区在线| 亚洲激情视频| 欧美婷婷在线| 亚洲免费在线电影| 中日韩视频在线观看| 亚洲人成人一区二区在线观看| 免费试看一区| 欧美精品在线免费| 亚洲直播在线一区| 亚洲综合日韩| 黄色在线一区| 亚洲成色www8888| 欧美日韩精选| 欧美亚洲免费电影| 久久久精品一区| 亚洲另类视频| 宅男精品视频| 黄色成人av| 亚洲日本中文字幕| 国产精品区一区二区三| 久久久久久97三级| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲裸体在线观看| 亚洲手机成人高清视频| 国产综合欧美在线看| 欧美激情第3页| 国产精品手机视频| 女仆av观看一区| 国产精品mm| 你懂的亚洲视频| 欧美视频在线观看视频极品| 久久久亚洲人| 欧美日韩国产一区二区三区| 久久精品国亚洲| 欧美日韩国产精品一区二区亚洲| 欧美一区二区视频免费观看| 欧美成人按摩| 久久久久久夜| 国产精品美女诱惑| 欧美激情自拍| 国产午夜亚洲精品羞羞网站| 99pao成人国产永久免费视频| 国产亚洲综合性久久久影院| 日韩视频国产视频| 亚洲第一黄网| 午夜精品短视频| 亚洲专区在线| 欧美成人一品| 欧美α欧美αv大片| 国产精品午夜国产小视频| 91久久精品网| 亚洲国产二区| 欧美一乱一性一交一视频| 亚洲新中文字幕| 欧美黑人多人双交| 欧美黄色网络| 亚洲国产高清一区| 久久gogo国模裸体人体| 欧美一区亚洲一区| 欧美香蕉视频| 一二美女精品欧洲| 99视频一区| 欧美精选在线| 亚洲精品美女久久7777777| 亚洲电影免费在线观看| 久久女同精品一区二区| 久久人体大胆视频| 精品999在线观看| 久久se精品一区二区| 欧美在线观看www| 国产欧美1区2区3区| 欧美在线free| 国产一区二区久久久| 亚洲一区二区少妇| 午夜宅男久久久| 国产精品视频99| 午夜精品美女自拍福到在线| 欧美一区综合| 韩国欧美一区| 狂野欧美激情性xxxx| 欧美国产日韩精品| 99re66热这里只有精品3直播| 欧美日韩成人一区| 亚洲天堂免费在线观看视频| 亚洲一区在线观看免费观看电影高清| 欧美日韩国产一级片| 亚洲新中文字幕| 久久久精品国产99久久精品芒果| 国产一区自拍视频| 久久先锋资源| 亚洲美女在线视频| 销魂美女一区二区三区视频在线| 校园激情久久| 牛人盗摄一区二区三区视频| 亚洲国产一二三| 国产精品国产一区二区| 午夜视频久久久| 亚洲韩国一区二区三区| 亚洲欧美变态国产另类| 狠狠干狠狠久久| 欧美乱妇高清无乱码| 亚洲欧美日韩国产中文在线| 麻豆视频一区二区| 亚洲手机成人高清视频| 国模一区二区三区| 欧美精品一区在线发布| 亚洲欧美日韩区| 亚洲国产1区| 午夜精品久久| 日韩午夜免费| 国产亚洲精品久久久久婷婷瑜伽| 欧美福利在线观看| 午夜欧美大片免费观看| 亚洲乱码国产乱码精品精天堂 | 欧美日本一区二区高清播放视频| 亚洲一区视频| 亚洲国产精品va在线看黑人| 久久成年人视频| 亚洲蜜桃精久久久久久久| 国产乱理伦片在线观看夜一区| 麻豆国产va免费精品高清在线| 在线一区二区三区做爰视频网站| 欧美成人免费视频| 欧美在现视频| 小辣椒精品导航| 在线视频亚洲欧美| 亚洲乱码日产精品bd| 韩国成人理伦片免费播放| 国产精品视频yy9299一区|