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

posts - 7,comments - 3,trackbacks - 0
PIGS
Time Limit: 1000MSMemory Limit: 10000K
Total Submissions: 10566Accepted: 4622

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


最大流,構圖思想:用人當點,因為每個人是按順序的,所以第i個人第一次打開第k個豬圈,第j個人第二次打開第k個豬圈時,相當于第i個人向第j個人增流。
所以,如果第i個人持有第k個豬圈的鑰匙,如果是第一次打開,就從源點引邊向該點,邊權累加豬圈的值(一個人可能持有多個鑰匙,所以要累加),如果不是第一次,那么從上一次那個人引出一條無限大的邊到i點作為增流。每個點到匯點的權值是該人需要的個數,最大流一次就行了。
SAP,時間很好看。
代碼:
#include<stdio.h>
#include<string.h>
#include
<iostream>
#include
<queue>
#define N 1010
using namespace std;
const int maxnode=60000;
const int maxedge=320000;
const int  inf = 1 << 30;
int S,T,cnt,n,m;
int head[maxnode],gap[maxnode],pre[maxnode],cur[maxnode],dis[maxnode];
struct Edge
{
    
int S,t;
    
int next;
    
int w;
}st[maxedge];
void init()
{
    memset(head,
-1,sizeof(head));
    cnt
=0;
}
void AddEdge(int S,int t,int w)
{
    st[cnt].S
=S;
    st[cnt].t
=t;
    st[cnt].w
=w;
    st[cnt].next
=head[S];
    head[S]
=cnt;
    cnt
++;
    st[cnt].S
=t;
    st[cnt].t
=S;
    st[cnt].w
=0;
    st[cnt].next
=head[t];
    head[t]
=cnt;
    cnt
++;
}
void bfs()
{
    memset(gap,
0,sizeof(gap));
    memset(dis,
-1,sizeof(dis));
    queue
<int >Q;
    Q.push(T);
    dis[T]
=0;
    gap[
0]=1;
    
int k,t;
    
while(!Q.empty())
    {
        k
=Q.front();
        Q.pop();
        
for(int i=head[k];i!=-1;i=st[i].next)
        {
            t
=st[i].t;
            
if(dis[t]==-1&&st[i^1].w>0)
            {
                dis[t]
=dis[k]+1;
                gap[dis[t]]
++;
                Q.push(t);
            }
        }
    }
}
int sap()
{
    
int i;
    
for( i=S;i<=T;i++)cur[i]=head[i];
    pre[S]
=S;
    
int u=S,v;
    
int  flow=0;
    
int aug=inf;
    
bool flag;
    
while(dis[S]<=T)
    {
        flag
=false;
        
for( i=cur[u];i!=-1;i=st[i].next)
        {
            v
=st[i].t;
            
if(st[i].w>0&&dis[u]==dis[v]+1)
            {
                cur[u]
=i;
                flag
=true;
                pre[v]
=u;
                aug
=(aug>st[i].w)?st[i].w:aug;
                u
=v;
                
if(v==T)
                {
                    flow
+=aug;
                    
for(u=pre[u];v!=S;u=pre[u])
                    {
                        v
=u;
                        st[cur[u]].w
-=aug;
                        st[cur[u]
^1].w+=aug;
                    }
                    aug
=inf;
                }
                
break;
            }
        }
        
if(flag==true)continue;
        
int mint=T;
        
for( i=head[u];i!=-1;i=st[i].next)
        {
            v
=st[i].t;
            
if(st[i].w>0&&mint>dis[v])
            {
                cur[u]
=i;
                mint
=dis[v];
            }
        }
        gap[dis[u]]
--;
        
if(gap[dis[u]]==0)break;
        gap[dis[u]
=mint+1]++;
        u
=pre[u];
        
if(u==S)aug=inf;
    }
    
return flow;
}

int main()
{
    
int map[N][N];
    
int num[N];
    
int f[N];
    
while (scanf("%d%d"&m, &n) != EOF)
    {
        memset(map, 
0sizeof(map));
        memset(f, 
0sizeof(f));
        init();
        S 
= 0;
        T 
= n + 1;
        
for (int i = 1; i <= m; ++i)
            scanf(
"%d"&num[i]);
        
for (int i = 1; i <= n; ++i)
        {
            
int a, b;
            scanf(
"%d"&a);
            
for (int j = 1; j <= a; ++j)
            {
                
int x;
                scanf(
"%d"&x);
                
if (f[x] == 0)
                {
                    map[S][i] 
+= num[x];
                    f[x] 
= i;
                }
                
else
                {
                    map[f[x]][i] 
= inf;
                    f[x] 
= i;
                }
            }
            scanf(
"%d"&b);
            map[i][T] 
+= b;
        }
        
for (int i = S; i <= T; ++i)
            
for (int j = S; j <= T; ++j)
            
if (map[i][j])
            {
                
//printf("%d %d %d\n", i, j, map[i][j]);
                AddEdge(i, j, map[i][j]);
            }
        bfs();
        printf(
"%d\n", sap());
    }
}

/*
4 2
1 2 3 5
3 1 2 3 10
1 4 5

*/
posted on 2011-10-15 22:12 LLawliet 閱讀(174) 評論(0)  編輯 收藏 引用 所屬分類: 網絡流
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩在线精品| 亚洲福利视频三区| 一本色道久久综合狠狠躁篇的优点| 欧美一级在线播放| 国产欧美一区二区三区国产幕精品| 最近中文字幕日韩精品| 久久aⅴ国产紧身牛仔裤| 欧美韩国在线| 欧美顶级少妇做爰| 欧美理论在线播放| 一本一本久久| 亚洲作爱视频| 国产精品人人做人人爽 | 欧美www视频在线观看| 久久精品成人| 在线播放亚洲一区| 欧美大片一区二区| 欧美激情综合五月色丁香| 亚洲精品影视在线观看| 日韩视频二区| 国产精品欧美风情| 久久美女性网| 久久综合久久综合这里只有精品| 在线国产亚洲欧美| 亚洲福利在线观看| 国产精品国产三级国产专播品爱网| 午夜国产欧美理论在线播放| 久久高清免费观看| 亚洲国产天堂久久综合网| 亚洲三级免费| 国产精品av免费在线观看| aa亚洲婷婷| 亚洲天堂av高清| 国产欧美一区二区精品性| 久久视频在线看| 欧美电影专区| 欧美一区二区黄色| 欧美成人免费观看| 亚洲免费视频在线观看| 久久精品理论片| 99成人在线| 销魂美女一区二区三区视频在线| 亚洲国产欧美日韩精品| 亚洲线精品一区二区三区八戒| 国产一区清纯| 日韩亚洲欧美一区| 亚洲福利视频二区| 亚洲尤物在线| 日韩午夜在线视频| 久久精品国产综合| 亚洲综合色婷婷| 99re成人精品视频| 亚洲欧美日韩精品| 亚洲六月丁香色婷婷综合久久| 亚洲桃色在线一区| 99视频精品在线| 久久国产精品99精品国产| 夜久久久久久| 久久一区二区精品| 欧美影院成年免费版| 欧美国产日韩在线| 玖玖精品视频| 国产网站欧美日韩免费精品在线观看 | 亚洲免费中文| 亚洲大胆人体视频| 亚洲免费观看| 最新国产成人av网站网址麻豆| 欧美一区二区视频在线观看| 亚洲精选在线观看| 久久综合狠狠| 久久人人97超碰精品888| 国产精品午夜久久| 亚洲四色影视在线观看| 亚洲视频欧美在线| 欧美精品成人一区二区在线观看 | 国产综合亚洲精品一区二| 亚洲一区二区三区久久| 亚洲无亚洲人成网站77777| 欧美v亚洲v综合ⅴ国产v| 免费观看在线综合| 国产综合香蕉五月婷在线| 亚欧成人精品| 久久精品视频免费观看| 国产伦精品一区二区三区四区免费 | 国产精品青草久久久久福利99| 亚洲免费观看高清完整版在线观看熊| 亚洲国产高清高潮精品美女| 久久午夜电影| 欧美福利视频在线| 亚洲国产中文字幕在线观看| 美日韩免费视频| 亚洲国产高清一区二区三区| 亚洲精品视频免费在线观看| 欧美精品一区二区三区一线天视频| 欧美伊人精品成人久久综合97 | 久久久久久久波多野高潮日日 | 久久免费视频观看| 欧美顶级艳妇交换群宴| 日韩五码在线| 欧美日韩国产在线观看| 99国产精品私拍| 91久久综合| 欧美四级在线| 午夜在线一区| 欧美大片免费观看| 日韩五码在线| 国产美女精品在线| 久久综合成人精品亚洲另类欧美| 亚洲电影欧美电影有声小说| 99re热这里只有精品视频| 欧美日韩一区精品| 亚洲一区二区三区视频| 国产裸体写真av一区二区| 欧美在线www| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产成人精品女人久久久 | 亚洲精品在线三区| 欧美精品一区二| 日韩午夜电影av| 久久国产精品网站| 国内精品久久久久久久影视麻豆| 免费不卡欧美自拍视频| 亚洲视频久久| 欧美黄网免费在线观看| 亚洲欧美在线一区| 亚洲国产成人在线播放| 国产精品porn| 欧美大胆成人| 欧美一区二区视频97| 99精品视频免费全部在线| 看片网站欧美日韩| 亚洲欧美日韩人成在线播放| 亚洲精品美女在线观看| 好吊视频一区二区三区四区| 欧美不卡在线视频| 日韩小视频在线观看专区| 蜜乳av另类精品一区二区| av成人国产| 在线观看一区视频| 国产精品一区二区三区观看| 欧美精品麻豆| 免播放器亚洲| 久久久国产精品一区| 亚洲欧美日韩精品久久亚洲区| 亚洲破处大片| 欧美国产精品va在线观看| 久久久久久久久伊人| 亚洲欧美另类综合偷拍| 一区二区三区国产在线| 亚洲精品国精品久久99热一| 国模私拍视频一区| 国产精品色网| 国产精品av免费在线观看| 欧美人与禽猛交乱配视频| 欧美一区二区国产| 亚洲图片欧洲图片av| 夜久久久久久| aⅴ色国产欧美| 妖精视频成人观看www| 日韩一级免费| 一区二区久久久久| 亚洲电影在线免费观看| 老司机免费视频一区二区| 久久久精品免费视频| 久久国产精品99久久久久久老狼| 午夜亚洲影视| 久久超碰97中文字幕| 久久精品夜色噜噜亚洲a∨| 欧美亚洲一区| 久久久欧美一区二区| 久久婷婷成人综合色| 欧美v日韩v国产v| 欧美激情aaaa| 亚洲三级视频在线观看| 日韩亚洲综合在线| 亚洲视频综合在线| 亚洲毛片在线| 亚洲天堂免费观看| 欧美一区二区精美| 欧美成人免费va影院高清| 欧美日本三区| 国产欧美一区二区三区在线老狼 | 国产精品稀缺呦系列在线| 在线免费日韩片| 亚洲免费在线视频| 国产精品免费一区二区三区在线观看| 国产日韩精品一区二区浪潮av| 亚洲电影中文字幕| 亚洲资源av| 欧美成va人片在线观看| 在线综合+亚洲+欧美中文字幕| 久久久久久亚洲精品杨幂换脸| 欧美日韩国产黄| 亚洲第一区色| 欧美一区二区三区精品| 亚洲国产美女精品久久久久∴| 性8sex亚洲区入口| 欧美日韩在线精品| 亚洲精品一区二区三| 久久综合色播五月|