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

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 閱讀(2134) 評論(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>
            亚洲香蕉伊综合在人在线视看| 一本在线高清不卡dvd | 久久亚洲免费| 欧美亚洲视频| 黄色av成人| 免费欧美日韩| 欧美激情a∨在线视频播放| 亚洲精品日韩激情在线电影 | 夜夜狂射影院欧美极品| 亚洲欧洲一区二区三区在线观看 | 久久精品99国产精品| 国产综合久久久久影院| 欧美成人小视频| 欧美精选午夜久久久乱码6080| 一区二区三区国产精品| 国产精品99久久久久久www| 国产精品免费在线| 久久一区激情| 欧美激情一区二区三区全黄| 夜夜狂射影院欧美极品| 亚洲综合精品| 亚洲人体1000| 欧美日韩在线不卡| 久久久久久伊人| 欧美成人日韩| 欧美亚洲一区二区三区| 久久夜色精品国产| 亚洲综合欧美日韩| 久久精品国产精品亚洲精品| 日韩一区二区精品| 欧美一区二区精品在线| 亚洲人成人一区二区在线观看| 一区二区三区久久| 亚洲国产毛片完整版 | 欧美电影美腿模特1979在线看| 欧美人体xx| 蜜臀a∨国产成人精品| 欧美三级午夜理伦三级中视频| 久久亚洲一区二区三区四区| 欧美日韩无遮挡| 蜜臀av性久久久久蜜臀aⅴ| 国产精品久久国产精品99gif | 蜜乳av另类精品一区二区| 欧美日韩免费网站| 欧美.日韩.国产.一区.二区| 国产精品久久国产愉拍| 亚洲国产成人久久综合一区| 国产一区日韩二区欧美三区| 在线视频欧美日韩| 亚洲伦理在线| 久久综合色8888| 久久久噜噜噜久久中文字免| 国产精品看片你懂得| 亚洲免费播放| 一本久道久久综合婷婷鲸鱼| 噜噜噜在线观看免费视频日韩| 久久成人精品一区二区三区| 欧美午夜a级限制福利片| 亚洲国语精品自产拍在线观看| 精品动漫一区| 久久久久一区| 榴莲视频成人在线观看| 国产日韩精品一区二区| 一本色道久久综合一区 | 国产日韩在线不卡| 亚洲线精品一区二区三区八戒| 一区二区三区 在线观看视| 欧美激情亚洲视频| 亚洲第一页在线| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美激情影音先锋| 亚洲国产美女| 美日韩精品免费| 亚洲国产91色在线| 亚洲精品网址在线观看| 欧美freesex交免费视频| 欧美激情免费在线| 亚洲国产你懂的| 欧美精品在线观看91| 亚洲青色在线| 亚洲一区二区高清| 国产精品永久| 欧美在线播放| 欧美成人国产va精品日本一级| 亚洲激情成人在线| 欧美激情视频一区二区三区在线播放 | 亚洲免费一级电影| 久久久久一本一区二区青青蜜月| 国产综合视频| 免费在线播放第一区高清av| 亚洲精品欧洲| 香蕉久久夜色| 亚洲电影自拍| 欧美色视频一区| 欧美在线亚洲综合一区| 欧美国产丝袜视频| 一区二区欧美国产| 国产亚洲精品久久久| 老鸭窝毛片一区二区三区| 亚洲欧洲综合另类| 午夜欧美精品久久久久久久| 一区二区三区在线视频免费观看| 欧美va天堂在线| 中文国产一区| 欧美ed2k| 欧美一区免费| 日韩亚洲一区二区| 国产欧美一区二区三区视频 | 亚洲欧美激情四射在线日| 美女视频黄a大片欧美| 国产精品99久久久久久www| 国产主播精品在线| 欧美日韩一区二区精品| 久久狠狠久久综合桃花| 亚洲另类视频| 男女激情久久| 性伦欧美刺激片在线观看| 亚洲欧洲一区二区在线播放| 国产精品综合不卡av| 欧美精品一区视频| 久久精品中文| 亚洲一区二区3| 亚洲区欧美区| 欧美成人r级一区二区三区| 欧美一级理论片| 一区二区三区视频在线看| 一区二区亚洲精品| 国产日产亚洲精品系列| 国产精品九九| 欧美偷拍一区二区| 欧美精品在线视频| 欧美91大片| 麻豆久久精品| 久久人人97超碰国产公开结果 | 亚洲一区二区三| 亚洲精品一区二区三区四区高清| 欧美福利在线| 美日韩精品免费观看视频| 久久久久久国产精品一区| 午夜精品成人在线视频| 亚洲综合日韩在线| 亚洲一区二区三区四区视频| 日韩亚洲不卡在线| 亚洲乱码精品一二三四区日韩在线| 伊人成人开心激情综合网| 国产日韩在线一区| 国产亚洲欧美在线| 国产在线成人| 国内精品嫩模av私拍在线观看 | 国产精品久久久久国产a级| 欧美日本中文字幕| 欧美色中文字幕| 国产精品欧美久久| 国产精品乱人伦中文| 国产精品成人一区二区三区吃奶| 欧美午夜精品电影| 欧美视频在线免费看| 国产精品九九| 国产日韩欧美一区| 一区二区在线观看视频| 亚洲国产精品传媒在线观看| 亚洲黄色性网站| 一本久久综合亚洲鲁鲁五月天| 99香蕉国产精品偷在线观看| 亚洲无线观看| 久久成人综合网| 免费日韩av电影| 亚洲伦理在线观看| 亚洲欧美国产不卡| 久久精品国产亚洲5555| 美日韩免费视频| 欧美性大战久久久久| 国产拍揄自揄精品视频麻豆| 狠狠色香婷婷久久亚洲精品| 亚洲国产欧美一区| 亚洲先锋成人| 久久综合999| 99这里只有精品| 欧美一区二区在线观看| 欧美阿v一级看视频| 国产精品乱码久久久久久| 韩日在线一区| 亚洲一区激情| 毛片基地黄久久久久久天堂| 亚洲欧洲一区二区三区| 亚洲欧美日韩在线综合| 美日韩丰满少妇在线观看| 国产精品久久网站| 在线观看中文字幕不卡| 亚洲一区二区三区精品动漫| 久久夜色撩人精品| 夜夜嗨av色一区二区不卡| 久久精品导航| 国产精品欧美日韩一区二区| 亚洲国产一区二区三区a毛片| 欧美一区永久视频免费观看| 亚洲激情在线视频| 久久精品国产999大香线蕉| 国产精品成人一区二区三区吃奶| 亚洲高清在线精品|