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

poj1459

Power Network

Time Limit: 2000MS Memory Limit: 32768K
Total Submissions: 16422 Accepted: 8712

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

Hint

The sample input contains two data sets. The first data set encodes a network with 2 nodes, power station 0 with pmax(0)=15 and consumer 1 with cmax(1)=20, and 2 power transport lines with lmax(0,1)=20 and lmax(1,0)=10. The maximum value of Con is 15. The second data set encodes the network from figure 1.


哎,糾結死了,我對網絡流這方面理解的還不行

如果自己寫代碼的話還是有點難度,所以找個好的模版還是很重要的

額,模版也比較糾結,好多中算法

找了個比較簡單的算法 Edmonds_karp 

時間復雜度為O(V*E^2)

Edmonds-Karp算法就是利用寬度優先不斷地找一條從s到t的可改進路,然后改進流量,一直到找不到可改進路為止。

由于用寬度優先,每次找到的可改進路是最短的可改進路,通過分析可以知道其復雜度為O(VE^2)。

代碼好丑
  1#include<stdio.h>
  2#include<string.h>
  3#include<math.h>
  4#define MAX 105
  5int map[MAX][MAX],flow[MAX][MAX],c[MAX][MAX];
  6int n,nc,np,nt,s,t;
  7int sum;
  8int min(int a,int b)
  9{
 10    if (a<b) return a;else return b;
 11}

 12void Edmonds_Karp()
 13{
 14    int l1[MAX],l2[MAX],q[MAX];
 15    int u,v,head,tail;
 16    do 
 17    {
 18        memset(l1,0,sizeof(l1));
 19        memset(l2,0,sizeof(l2));//初始化所有標號為0
 20        l1[s]=0;l2[s]=0x7fffffff;
 21        head=0;tail=1;
 22        q[tail]=s;
 23        while (head<tail&&l2[t]==0)//q未空且匯點未標號
 24        {
 25            head++;
 26            u=q[head];
 27            for (v=1;v<=n ;v++ )
 28            {
 29                if (flow[u][v]<c[u][v]&&l2[v]==0)//未標號且有可行流
 30                {
 31                    tail++;
 32                    q[tail]=v;
 33                    l2[v]=min(c[u][v]-flow[u][v],l2[u]);
 34                    //l2[v]記錄s到v增廣路中最小的可改進流
 35                    l1[v]=u;//記錄前驅
 36                }

 37            }

 38        }

 39        if (l2[t]>0)//匯點未標號
 40        {
 41            v=t;
 42            u=l1[v];
 43            while (v!=s)
 44            {
 45                flow[u][v]+=l2[t];
 46                flow[v][u]=-flow[u][v];
 47                v=u;
 48                u=l1[v];
 49            }

 50        }

 51    }

 52    while (l2[t]!=0);//直到匯點未標號
 53}

 54void init()
 55{
 56    int i,j,a,b,w,x;
 57    char ch1;
 58    s=1;t=n+2;
 59    memset(map,0,sizeof(map));
 60    for (i=1;i<=nt ;i++ )
 61    {
 62        scanf("%c",&ch1);
 63        while (ch1!='(')
 64        {
 65            scanf("%c",&ch1);
 66        }

 67        scanf("%d",&a);a=a+2;
 68        scanf("%c",&ch1);scanf("%d",&b);b=b+2;
 69        scanf("%c",&ch1);scanf("%d",&w);
 70        map[a][b]=w;
 71    }

 72    for (i=1;i<=np ;i++ )
 73    {
 74        scanf("%c",&ch1);
 75        while (ch1!='(')
 76        {
 77            scanf("%c",&ch1);
 78        }

 79        scanf("%d",&a);a=a+2;
 80        scanf("%c",&ch1);scanf("%d",&w);
 81        map[s][a]=w;//map[a][s]=-w;
 82    }

 83    for (i=1;i<=nc ;i++ )
 84    {
 85        scanf("%c",&ch1);
 86        while (ch1!='(')
 87        {
 88            scanf("%c",&ch1);
 89        }

 90        scanf("%d",&a);a=a+2;
 91        scanf("%c",&ch1);scanf("%d",&w);
 92        map[a][t]=w;//map[t][a]=-w;
 93    }

 94    n=n+2;
 95    /*/for (i=1;i<=n ;i++ )
 96    {
 97        for (j=1;j<=n;j++ )
 98        {
 99            printf("%d ",map[i][j]);
100        }
101        printf("\n");
102    }*/

103    for (i=1;i<=n ;i++ )
104    {
105        for (j=1;j<=n;j++ )
106        {
107            c[i][j]=map[i][j];
108        }

109    }

110}

111int main()
112{
113    int i;
114    while (scanf("%d%d%d%d",&n,&np,&nc,&nt)!=EOF)
115    {
116        memset(flow,0,sizeof(flow));
117        init();
118        Edmonds_Karp(1,n);
119        sum=0;
120        for (i=1;i<=n;i++ )
121        {
122            sum+=flow[1][i];
123        }

124        printf("%d\n",sum);
125    }

126    return 0;
127}

128



posted on 2012-02-23 17:34 jh818012 閱讀(136) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導航

統計

常用鏈接

留言簿

文章檔案(85)

搜索

最新評論

  • 1.?re: poj1426
  • 我嚓,,輝哥,,居然搜到你的題解了
  • --season
  • 2.?re: poj3083
  • @王私江
    (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
  • --游客
  • 3.?re: poj3414[未登錄]
  • @王私江
    0ms
  • --jh818012
  • 4.?re: poj3414
  • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
  • --王私江
  • 5.?re: poj1426
  • 評論內容較長,點擊標題查看
  • --王私江
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            狠狠色综合网| 久久综合色8888| 在线观看的日韩av| 中日韩午夜理伦电影免费| 亚洲精品一区二区三区樱花| 久久午夜激情| 久久综合色播五月| 激情文学综合丁香| 久久国产精品色婷婷| 午夜日韩视频| 国产精品日本| 亚洲欧美日韩在线不卡| 欧美一级片在线播放| 国产精品资源| 欧美与欧洲交xxxx免费观看 | 国产精品亚洲片夜色在线| 一本久久精品一区二区| 亚洲无亚洲人成网站77777| 欧美日韩精品一区二区三区| 亚洲免费激情| 亚洲资源在线观看| 国产免费观看久久| 久久精品1区| 亚洲福利精品| 一区二区三区成人精品| 欧美日韩国产小视频| 宅男噜噜噜66一区二区66| 久久国产加勒比精品无码| 国产一区二区三区在线播放免费观看| 欧美在线精品一区| 欧美国产三级| 亚洲视频一区二区| 国产麻豆成人精品| 久久婷婷国产综合精品青草 | 亚洲人成小说网站色在线| 欧美另类videos死尸| 一区二区高清视频| 久久免费精品视频| 亚洲免费观看高清完整版在线观看| 欧美另类久久久品| 亚洲欧美另类在线| 欧美国产日韩亚洲一区| 亚洲小说区图片区| 国产亚洲一级| 欧美激情精品| 亚洲欧美中文字幕| 91久久国产综合久久91精品网站| 亚洲一区二区av电影| 狠狠色综合网| 欧美日韩免费观看一区二区三区 | 国产精品日韩专区| 久久久久久久999精品视频| 亚洲精品午夜| 久久综合激情| 久久漫画官网| 欧美69wwwcom| 亚洲制服少妇| 亚洲激情视频在线| 国产欧美一区二区三区在线看蜜臀 | 99在线精品视频| 久久久久久成人| 在线中文字幕日韩| 在线高清一区| 国产麻豆91精品| 欧美日韩在线看| 免费在线成人av| 久久精品人人做人人爽| 国产精品99久久久久久久女警| 欧美大片一区二区三区| 欧美一区二区三区在线视频 | 99视频精品| 狠狠久久婷婷| 国产精品国产三级国产普通话99| 麻豆国产精品va在线观看不卡| 亚洲免费视频一区二区| 日韩视频免费观看| 亚洲国产精品激情在线观看| 久久久亚洲精品一区二区三区 | 亚洲成色777777女色窝| 久久久久在线观看| 性色av一区二区三区| 亚洲网站在线播放| 亚洲精品字幕| 最新日韩在线| 在线日本欧美| 伊人久久大香线蕉综合热线 | 欧美a级大片| 久久精品女人的天堂av| 欧美一级夜夜爽| 午夜精品电影| 亚洲综合欧美| 亚洲午夜未删减在线观看| 99视频在线观看一区三区| 亚洲欧洲精品一区二区三区波多野1战4 | 国产精品久线观看视频| 欧美日本免费一区二区三区| 欧美成人免费全部| 欧美sm极限捆绑bd| 欧美国内亚洲| 免费视频一区| 欧美高清视频| 欧美巨乳在线| 欧美日韩亚洲免费| 欧美午夜精品| 国产精品人成在线观看免费| 国产精品欧美风情| 国产酒店精品激情| 国产亚洲欧美日韩精品| 国内精品久久久| 亚洲国产精品123| 亚洲精品视频免费| 一区二区三区四区精品| 亚洲欧美日韩电影| 欧美亚洲免费高清在线观看| 久久se精品一区精品二区| 久久久www免费人成黑人精品| 久久亚洲国产精品一区二区| 99这里只有精品| 在线观看精品| 亚洲国产一区二区三区高清 | 欧美日韩直播| 国产精品一区二区视频| 国产午夜一区二区三区| 有码中文亚洲精品| 亚洲国产综合91精品麻豆| 亚洲精品孕妇| 亚洲在线观看免费视频| 欧美在线观看视频一区二区三区 | 亚洲欧美日韩一区二区三区在线| 西西人体一区二区| 久久麻豆一区二区| 亚洲高清视频的网址| 一区二区三区高清| 香蕉久久一区二区不卡无毒影院| 久久精品人人| 欧美日韩国产首页| 国产日韩欧美一二三区| 亚洲黄色在线看| 午夜亚洲福利在线老司机| 久久天堂精品| 亚洲精品欧美极品| 午夜免费久久久久| 欧美成人dvd在线视频| 国产精品久久久久久久久| 一区在线播放| 亚洲一区二区久久| 美女亚洲精品| 亚洲午夜免费福利视频| 另类亚洲自拍| 国产欧美日韩在线播放| 亚洲日本成人| 欧美在线一二三区| 亚洲精品久久久久久久久久久久| 午夜视频在线观看一区二区| 麻豆久久久9性大片| 国产精品一二三| 亚洲精品一二区| 久久国产精品99久久久久久老狼| 亚洲国产精品激情在线观看| 亚洲欧美制服中文字幕| 欧美日韩国产成人| 在线观看日韩av电影| 亚洲在线视频一区| 欧美刺激性大交免费视频| 亚洲尤物视频网| 欧美剧在线免费观看网站| 国模精品一区二区三区色天香| 一本色道久久综合亚洲精品小说| 久久久夜色精品亚洲| 一区二区三区精品视频| 欧美成人精品影院| 精品1区2区3区4区| 午夜精品成人在线视频| 亚洲精品乱码久久久久久蜜桃91| 久久琪琪电影院| 国产日韩欧美综合| 午夜激情一区| 一区二区三区日韩欧美精品| 欧美国产激情二区三区| 精品福利免费观看| 欧美尤物巨大精品爽| 一区二区三区四区五区在线| 欧美精品一区二区三| 亚洲国产1区| 猛男gaygay欧美视频| 久久aⅴ乱码一区二区三区| 国产精品视频yy9099| 一区二区三区四区国产精品| 亚洲激情不卡| 欧美黄在线观看| 亚洲伦理一区| 最近看过的日韩成人| 欧美刺激午夜性久久久久久久| 伊人夜夜躁av伊人久久| 久久三级视频| 久久理论片午夜琪琪电影网| 经典三级久久| 欧美国产第一页| 欧美福利一区| 一区二区三区毛片|