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

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

Description

Mirko works on a pig farm that consists of M locked pig-houses and Mirko can't unlock any pighouse because he doesn't have the keys. Customers come to the farm one after another. Each of them has keys to some pig-houses and wants to buy a certain number of pigs.
All data concerning customers planning to visit the farm on that particular day are available to Mirko early in the morning so that he can make a sales-plan in order to maximize the number of pigs sold.
More precisely, the procedure is as following: the customer arives, opens all pig-houses to which he has the key, Mirko sells a certain number of pigs from all the unlocked pig-houses to him, and, if Mirko wants, he can redistribute the remaining pigs across the unlocked pig-houses.
An unlimited number of pigs can be placed in every pig-house.
Write a program that will find the maximum number of pigs that he can sell on that day.

Input

The first line of input contains two integers M and N, 1 <= M <= 1000, 1 <= N <= 100, number of pighouses and number of customers. Pig houses are numbered from 1 to M and customers are numbered from 1 to N.
The next line contains M integeres, for each pig-house initial number of pigs. The number of pigs in each pig-house is greater or equal to 0 and less or equal to 1000.
The next N lines contains records about the customers in the following form ( record about the i-th customer is written in the (i+2)-th line):
A K1 K2 ... KA B It means that this customer has key to the pig-houses marked with the numbers K1, K2, ..., KA (sorted nondecreasingly ) and that he wants to buy B pigs. Numbers A and B can be equal to 0.

Output

The first and only line of the output should contain the number of sold pigs.

Sample Input

3 3
3 1 10
2 1 2 2
2 1 3 3
1 2 6

Sample Output

7

二、分析
      這道題的見圖有些復(fù)雜,不過看到豬圈有1000個(gè),而顧客有100個(gè),可以發(fā)現(xiàn)不可能以豬圈為頂點(diǎn)。新設(shè)兩個(gè)頂點(diǎn),一個(gè)s,一個(gè)t,當(dāng)?shù)谝粋€(gè)顧客有個(gè)一個(gè)豬圈的鑰匙時(shí),就有一條從s到該顧客的邊,容量為豬圈中豬的數(shù)量,以后另外有顧客有這個(gè)豬圈的鑰匙是,則有一條從前一個(gè)顧客到這個(gè)顧客的邊,容量為無窮大,同時(shí)每個(gè)顧客都有到t的邊,容量為顧客的需求量。求最大流,使用Relabel-To-Front算法,具體算法:最大流問題
三、代碼

  1#include<iostream>
  2#include<list>
  3using namespace std;
  4#define MAXM 1001
  5#define MAXN 101
  6int s, t;
  7int n, m;
  8int pig[MAXM], record[MAXM];
  9int c[MAXN+2][MAXN+2];
 10int f[MAXN+2][MAXN+2];
 11int e[MAXN+2];
 12int h[MAXN+2];
 13list<int> l;
 14list<int>::iterator lit;
 15list<int> neb[MAXN+2];
 16list<int>::iterator nit[MAXN+2];
 17void push(int u, int v)
 18{
 19    int d = min(e[u], c[u][v] - f[u][v]);
 20    f[u][v] += d;
 21    f[v][u] = -f[u][v];
 22    e[u] -= d;
 23    e[v] += d;
 24}

 25void relabel(int u)
 26{
 27    int mh = INT_MAX;
 28    for(int i=0; i<n+2; i++)
 29    {
 30        if(c[u][i] > f[u][i])
 31            mh = min(mh, h[i]);
 32    }

 33    h[u] = mh + 1;
 34}

 35void discharge(int u)
 36{
 37    while(e[u] > 0)
 38    {
 39        if(nit[u] == neb[u].end())
 40        {
 41            relabel(u);
 42            nit[u] = neb[u].begin();
 43            continue;
 44        }

 45        int v = *nit[u];
 46        if(c[u][v] > f[u][v] && h[u] == h[v]+1)
 47            push(u, v);
 48        else
 49            nit[u]++;
 50    }

 51}

 52void init_preflow()
 53{
 54    memset(h, 0sizeof(h));
 55    memset(e, 0sizeof(e));
 56    h[s] = n+2;
 57    for(int i=0; i<n+2; i++)
 58    {
 59        if(c[s][i] == 0)
 60            continue;
 61        f[s][i] = c[s][i];
 62        f[i][s] = -f[s][i];
 63        e[i] = c[s][i];
 64        e[s] -= c[s][i];
 65    }

 66}

 67void relabel_to_front()
 68{
 69    init_preflow();
 70    for(int i=1; i<=n; i++)
 71    {
 72        l.push_back(i);
 73        nit[i] = neb[i].begin();
 74    }

 75    lit = l.begin();
 76    while(lit != l.end())
 77    {
 78        int u = *lit;
 79        int old = h[u];
 80        discharge(u);
 81        if(h[u] > old)
 82        {
 83            l.erase(lit);
 84            l.push_front(u);
 85            lit = l.begin();
 86        }

 87        lit++;
 88    }

 89}

 90int main()
 91{
 92    memset(c, 0sizeof(c));
 93    memset(f, 0sizeof(f));
 94    memset(record, -1sizeof(record));
 95    scanf("%d%d"&m, &n);
 96    s = 0; t = n+1;
 97    for(int i=1; i<=m; i++)
 98        scanf("%d"&pig[i]);
 99    for(int i=1; i<=n; i++)
100    {
101        int a, k, b;
102        scanf("%d"&a);
103        for(int j=0; j<a; j++)
104        {
105            scanf("%d"&k);
106            if(record[k] == -1)
107            {
108                if(c[s][i] == 0)
109                {
110                    c[s][i] = pig[k];
111                    neb[s].push_back(i);
112                    neb[i].push_back(s);
113                }

114                else
115                    c[s][i] += pig[k];
116                record[k] = i;
117            }

118            else
119            {
120                c[record[k]][i] = INT_MAX;
121                neb[record[k]].push_back(i);
122                neb[i].push_back(record[k]);
123            }

124        }

125        scanf("%d"&b);
126        c[i][t] = b;
127        neb[i].push_back(t);
128        neb[t].push_back(i);
129    }

130    relabel_to_front();
131    printf("%d\n", e[t]);
132}

 

posted on 2009-06-26 16:15 Icyflame 閱讀(1350) 評論(0)  編輯 收藏 引用 所屬分類: 解題報(bào)告
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人精品不卡视频在线观看| 一本色道综合亚洲| 91久久精品国产91性色| 性欧美1819性猛交| 欧美日韩精品综合在线| 日韩一区二区免费看| 一本一本久久| 亚洲视频电影在线| 欧美一区二区播放| 久久精品视频免费播放| 在线视频国内自拍亚洲视频| 美女免费视频一区| 一区二区欧美在线观看| 免费观看成人www动漫视频| 亚洲精品免费网站| 国模精品一区二区三区| 久久久国产精品一区| 亚洲人www| 亚洲主播在线播放| 亚洲精品免费一二三区| 亚洲自拍偷拍麻豆| 欧美亚洲综合另类| 一区二区三区高清在线| 亚洲福利视频专区| 精品福利av| 国产乱码精品1区2区3区| 蜜桃av一区二区| 99热这里只有精品8| 久久精品官网| 亚洲国产精品999| 久久精品视频在线观看| 99热免费精品| 久久久国产成人精品| 欧美日韩亚洲高清| 欧美国产日韩精品| 久久精品一区二区三区不卡牛牛| 欧美国产大片| 快she精品国产999| 欧美中文字幕在线播放| 亚洲欧美大片| 欧美一级免费视频| 91久久综合亚洲鲁鲁五月天| 亚洲欧洲日本专区| 欧美一区二区私人影院日本 | 久久看片网站| 午夜在线电影亚洲一区| 欧美日韩国产精品一区| 亚洲国产va精品久久久不卡综合| 欧美在线中文字幕| 亚洲午夜精品在线| 亚洲免费人成在线视频观看| 亚洲一区二区三区中文字幕 | 亚洲精品专区| 99视频精品在线| 欧美 日韩 国产一区二区在线视频| 麻豆久久精品| 精品成人乱色一区二区| 久久久久久精| 久久久久久有精品国产| 韩国视频理论视频久久| 亚洲黄一区二区三区| 99国产一区二区三精品乱码| 亚洲一区二区三区在线视频| 亚洲综合国产| 夜色激情一区二区| 亚洲国产精品久久久久秋霞蜜臀| 久久亚洲精选| 日韩视频免费观看高清在线视频| 欧美成人亚洲成人日韩成人| 亚洲福利一区| 亚洲高清不卡在线| 一区二区三区免费网站| 91久久久在线| 欧美美女bb生活片| 国产欧美日韩综合一区在线观看 | 亚洲国产天堂网精品网站| 蜜臀av国产精品久久久久| 亚洲欧洲日本在线| 一级日韩一区在线观看| 国产伦精品一区二区三| 久久人人97超碰人人澡爱香蕉| 亚洲国产精品久久久久婷婷884| 免费成人小视频| 在线亚洲观看| 欧美一区二区免费观在线| 伊人成人在线| 午夜亚洲福利| 亚洲美女电影在线| 欧美福利在线观看| 欧美日韩精品久久久| 欧美一区三区二区在线观看| 久久人人97超碰国产公开结果 | 欧美三级欧美一级| 精品电影在线观看| 亚洲黄一区二区三区| 国产精品免费电影| 999亚洲国产精| 亚洲一区二区少妇| 亚洲精选中文字幕| 免费亚洲视频| 国产精品欧美久久| 99国产精品久久久久老师| 亚洲欧美精品一区| 99视频在线精品国自产拍免费观看 | 亚洲制服少妇| 亚洲国产一区二区a毛片| 亚洲影视中文字幕| 亚洲免费观看在线观看| 欧美伊人久久久久久午夜久久久久| 国产精品毛片a∨一区二区三区|国| 久久九九热免费视频| 欧美日韩黄色大片| 欧美成人亚洲成人| 国产一二三精品| 麻豆freexxxx性91精品| 一区二区三区鲁丝不卡| 午夜一级久久| 亚洲综合999| 欧美日韩精品免费观看视频完整 | 国产中文一区二区| 中文在线一区| 国产精品网红福利| 亚洲伦理在线观看| 亚洲午夜av在线| 国产视频自拍一区| 亚洲一区精品视频| 国内综合精品午夜久久资源| 每日更新成人在线视频| 中文亚洲字幕| 亚洲激情网站免费观看| 久久精视频免费在线久久完整在线看| 在线免费观看一区二区三区| 欧美xxx在线观看| 久久精品国产精品亚洲综合| 在线观看91久久久久久| 欧美精品乱码久久久久久按摩| 麻豆av一区二区三区久久| 亚洲视频你懂的| 亚洲欧美日韩精品久久奇米色影视| 亚洲国产成人久久综合一区| 黄色一区二区三区| 一区二区视频欧美| 国产一区视频在线看| 国产精品久久久久久久久久久久久久| 香蕉免费一区二区三区在线观看 | 宅男66日本亚洲欧美视频| 欧美黄污视频| 久热精品视频在线观看| 欧美本精品男人aⅴ天堂| 麻豆乱码国产一区二区三区| 狠狠色狠狠色综合日日小说| 欧美专区18| 欧美激情中文字幕一区二区| 日韩午夜av电影| 欧美午夜久久久| 在线综合+亚洲+欧美中文字幕| 免费在线一区二区| 日韩一级精品| 欧美一区二区三区久久精品茉莉花| 国产精品网站视频| 久久精品一区蜜桃臀影院| 另类春色校园亚洲| 99国产精品99久久久久久| 欧美视频成人| 欧美一区二区国产| 亚洲区在线播放| 韩国女主播一区| 欧美韩日一区| 亚洲综合国产| 欧美h视频在线| 国产精品普通话对白| 久久精品91| 最新国产拍偷乱拍精品| 午夜精品福利一区二区三区av| 狠狠做深爱婷婷久久综合一区| 欧美国产亚洲视频| 欧美在线观看视频一区二区| 91久久国产综合久久| 欧美影院一区| 99精品99| 一区二区亚洲欧洲国产日韩| 欧美视频中文一区二区三区在线观看| 欧美一级一区| 99国产精品私拍| 欧美激情久久久久| 精品成人免费| 国产精品青草综合久久久久99| 久久综合久久综合这里只有精品 | 裸体丰满少妇做受久久99精品| 亚洲精品视频在线观看免费| 国产精品一区二区三区观看| 欧美精品大片| 久久综合成人精品亚洲另类欧美| 亚洲午夜av在线| 亚洲六月丁香色婷婷综合久久| 免费h精品视频在线播放| 午夜在线精品偷拍| 亚洲伊人网站| 在线一区二区三区四区| 亚洲国产一区在线|