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

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

Description

Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area there are N shopkeepers (marked from 1 to N) which stocks goods from him.Dearboy has M supply places (marked from 1 to M), each provides K different kinds of goods (marked from 1 to K). Once shopkeepers order goods, Dearboy should arrange which supply place provide how much amount of goods to shopkeepers to cut down the total cost of transport.

It's known that the cost to transport one unit goods for different kinds from different supply places to different shopkeepers may be different. Given each supply places' storage of K kinds of goods, N shopkeepers' order of K kinds of goods and the cost to transport goods for different kinds from different supply places to different shopkeepers, you should tell how to arrange the goods supply to minimize the total cost of transport.

Input

The input consists of multiple test cases. The first line of each test case contains three integers N, M, K (0 < N, M, K < 50), which are described above. The next N lines give the shopkeepers' orders, with each line containing K integers (there integers are belong to [0, 3]), which represents the amount of goods each shopkeeper needs. The next M lines give the supply places' storage, with each line containing K integers (there integers are also belong to [0, 3]), which represents the amount of goods stored in that supply place.

Then come K integer matrices (each with the size N * M), the integer (this integer is belong to (0, 100)) at the i-th row, j-th column in the k-th matrix represents the cost to transport one unit of k-th goods from the j-th supply place to the i-th shopkeeper.

The input is terminated with three "0"s. This test case should not be processed.

Output

For each test case, if Dearboy can satisfy all the needs of all the shopkeepers, print in one line an integer, which is the minimum cost; otherwise just output "-1".

Sample Input

1 3 3
1 1 1
0 1 1
1 2 2
1 0 1
1 2 3
1 1 1
2 1 1
1 1 1
3
2
20
0 0 0

Sample Output

4
-1


二、分析
      一個的最小費用最大流問題,詳細算法:最小費用最大流
三、代碼

  1#include<iostream>
  2#include<queue>
  3using namespace std;
  4int n, m, kind;
  5int s, t;
  6int order[51][51];
  7int store[51][51];
  8int cost[51][51][51];
  9int c[102][102];
 10int f[102][102];
 11int b[102][102];
 12int p[102];
 13int d[102];
 14bool visit[102]; //表示spfa中點是否在隊列中
 15void spfa() //求Gf的最短路
 16{
 17    queue<int> q;
 18    memset(visit, 0sizeof(visit));
 19    q.push(s);
 20    visit[s] = true;
 21    while(!q.empty())
 22    {
 23        int u = q.front();
 24        visit[u] = false;
 25        q.pop();
 26        for(int v=0; v<=n+m+1; v++)
 27            if(c[u][v] > f[u][v] && d[v] > d[u] + b[u][v])
 28            {
 29                d[v] = d[u] + b[u][v];
 30                p[v] = u;
 31                if(!visit[v])
 32                {
 33                    q.push(v);
 34                    visit[v] = true;
 35                }

 36            }

 37    }

 38}

 39void mcmf()
 40{
 41    while(1)
 42    {
 43        memset(p, -1sizeof(p));
 44        for(int i=1; i<=n+m+1; i++)
 45            d[i] = 100000;
 46        d[s] = 0;
 47        spfa();
 48        if(p[t] == -1//表示已無增廣路
 49            break;
 50        int minf = INT_MAX;
 51        int it = t;
 52        while(p[it] != -1)
 53        {
 54            minf = min(minf, c[p[it]][it] - f[p[it]][it]);
 55            it = p[it];
 56        }

 57        it = t;
 58        while(p[it] != -1)
 59        {
 60            f[p[it]][it] += minf;
 61            f[it][p[it]] = -f[p[it]][it];
 62            it = p[it];
 63        }

 64    }

 65}

 66int main()
 67{
 68    while(1)
 69    {
 70        scanf("%d%d%d"&n, &m, &kind);
 71        if(n==0 && m==0 && kind==0)
 72            break;
 73        for(int i=1; i<=n; i++)
 74            for(int j=1; j<=kind; j++)
 75                scanf("%d"&order[i][j]);
 76        for(int i=1; i<=m; i++)
 77            for(int j=1; j<=kind; j++)
 78                scanf("%d"&store[i][j]);
 79        for(int i=1; i<=kind; i++)
 80            for(int j=1; j<=n; j++)
 81                for(int k=1; k<=m; k++)
 82                    scanf("%d"&cost[i][k][j]);
 83        s = 0; t = m+n+1;
 84        int res = 0;
 85        bool flag = true;
 86        for(int i=1; i<=kind; i++)
 87        {
 88            memset(c, 0sizeof(c));
 89            for(int j=1; j<=m; j++)
 90                c[s][j] = store[j][i];
 91            for(int j=1; j<=m; j++)
 92                for(int k=1; k<=n; k++)
 93                    c[j][k+m] = store[j][i];
 94            for(int j=1; j<=n; j++)
 95                c[j+m][t] = order[j][i];
 96            memset(b, 0sizeof(b));
 97            for(int j=1; j<=m; j++)
 98                for(int k=1; k<=n; k++)
 99                {
100                    b[j][k+m] = cost[i][j][k];
101                    b[k+m][j] = -b[j][k+m]; //負費用,表示回流會減小費用
102                }

103            memset(f, 0sizeof(f));
104            mcmf();
105            for(int j=1; j<=n; j++)
106                if(c[j+m][t] != f[j+m][t])
107                {
108                    flag = false;
109                    break;
110                }

111            if(!flag) break;
112            for(int j=1; j<=m; j++)
113                for(int k=1; k<=n; k++)
114                    res += f[j][m+k] * b[j][m+k];
115        }

116        if(flag)
117            printf("%d\n", res);
118        else
119            printf("-1\n");
120    }

121}
posted on 2009-06-30 22:09 Icyflame 閱讀(3377) 評論(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>
            欧美另类变人与禽xxxxx| 欧美日韩高清不卡| 国产一级揄自揄精品视频| 亚洲男同1069视频| av成人毛片| 国产精品r级在线| 亚洲视频一区二区| 99视频超级精品| 国产精品久久久久久久久久免费 | 亚洲欧美日韩国产综合| 国产精品视频久久| 久久精品成人一区二区三区| 亚洲一区二区精品| 国产一区二区精品在线观看| 久久综合影音| 欧美国产日韩精品| 亚洲综合精品一区二区| 亚洲欧美中文日韩在线| 狠狠久久亚洲欧美专区| 亚洲国产精品久久久久婷婷884| 欧美成人免费小视频| 亚洲午夜久久久| 亚洲欧美另类国产| 亚洲精品1区| 99国产精品久久久久久久久久| 国产精品久久一级| 美女视频一区免费观看| 欧美激情综合在线| 欧美综合二区| 欧美高潮视频| 久久久91精品| 欧美精品91| 久久视频精品在线| 欧美女激情福利| 久久亚洲一区二区| 欧美日韩综合| 免费毛片一区二区三区久久久| 欧美日本精品| 免费看成人av| 国产女人18毛片水18精品| 亚洲大片在线| 国产一区二区三区在线观看免费| 亚洲国产精品久久久久婷婷884 | 性做久久久久久久免费看| 在线成人欧美| 亚洲先锋成人| 亚洲伦理在线免费看| 欧美一区二区三区久久精品茉莉花| 亚洲毛片视频| 久久国产精品第一页| 亚洲在线播放| 欧美黑人一区二区三区| 久久夜色精品一区| 国产精品一区视频| 亚洲精品乱码久久久久久按摩观| 国内综合精品午夜久久资源| 99国产精品国产精品久久| 亚洲激情欧美激情| 久久精品一区| 久久精品99国产精品酒店日本| 国产精品久久久久av| 亚洲人成77777在线观看网| 在线欧美视频| 久久久久久自在自线| 久久国产66| 国产精品一区二区在线观看网站| 一本色道久久综合狠狠躁篇的优点 | 亚洲狼人精品一区二区三区| 欧美亚洲视频一区二区| 亚洲免费影院| 欧美日韩精品在线观看| 亚洲精品美女在线| 亚洲人成网站在线观看播放| 久久天天狠狠| 蜜臀久久99精品久久久久久9 | 欧美精品免费观看二区| 亚洲二区在线观看| 亚洲人www| 欧美极品在线视频| 亚洲日本成人在线观看| 日韩视频精品| 欧美日韩综合久久| 亚洲一区二区视频在线| 欧美与黑人午夜性猛交久久久| 国产精品日日摸夜夜摸av| 亚洲免费影院| 久热精品在线| 亚洲区在线播放| 欧美精品在线网站| 亚洲图片欧美日产| 久久精视频免费在线久久完整在线看 | 亚洲精品欧洲精品| 午夜精品久久久久久久| 国产综合婷婷| 蜜桃久久精品一区二区| 亚洲免费成人av| 香蕉久久夜色精品| 狠狠爱综合网| 欧美激情五月| 亚洲欧美日韩一区在线| 蜜臀a∨国产成人精品 | 欧美日韩国产色视频| 亚洲天堂av在线免费观看| 久久久久国产精品一区| 亚洲破处大片| 国产女人aaa级久久久级| 久久久久网址| 在线亚洲自拍| 欧美77777| 亚洲永久在线观看| 亚洲国产第一页| 欧美日韩一区综合| 久久久福利视频| 日韩小视频在线观看专区| 久久精品首页| 在线中文字幕一区| 亚洲成人自拍视频| 国产精品美女久久久久久免费| 久久欧美肥婆一二区| 亚洲香蕉伊综合在人在线视看| 欧美成人精品一区二区| 欧美一区国产在线| 一区二区精品在线观看| 亚洲第一区在线| 国产精品欧美日韩一区| 欧美精品免费在线观看| 久久久蜜桃精品| 亚洲欧美国产精品va在线观看| 最近看过的日韩成人| 欧美成人午夜激情| 欧美影院午夜播放| 亚洲一区制服诱惑| 亚洲精选91| 亚洲国产欧美在线人成| 狠狠入ady亚洲精品| 国产日本欧美一区二区三区| 欧美日韩国产探花| 欧美国产在线电影| 欧美+亚洲+精品+三区| 久久爱www.| 欧美在线观看视频一区二区| 亚洲欧美日韩精品一区二区| 一区二区久久久久久| 日韩视频在线你懂得| 亚洲三级国产| 亚洲国产精品成人| 亚洲国产欧美不卡在线观看 | 9久草视频在线视频精品| 亚洲国产91| 亚洲第一色中文字幕| 136国产福利精品导航网址应用| 国产午夜精品麻豆| 韩日欧美一区二区| 好吊视频一区二区三区四区| 国产女人精品视频| 国产三级欧美三级日产三级99| 国产九区一区在线| 国产专区精品视频| 国产一区清纯| 在线精品视频一区二区三四| 亚洲国产导航| 99re在线精品| 香蕉久久a毛片| 久久久久久久久久久久久女国产乱| 久久精品国产综合精品| 蜜臀av一级做a爰片久久| 欧美不卡福利| 亚洲精品乱码久久久久久蜜桃91| 99国产精品久久久久久久成人热| 夜夜爽www精品| 欧美一级大片在线免费观看| 欧美在线视频日韩| 久久久久久久一区二区| 欧美激情亚洲激情| 国产精品成人观看视频免费| 国产午夜精品久久久久久免费视 | 国产精品日本精品| 好看的日韩视频| 亚洲精品日韩在线观看| 亚洲在线播放| 美女精品自拍一二三四| 亚洲精品日本| 久久精品99无色码中文字幕| 欧美高清视频在线观看| 国产精品精品视频| 狠狠爱综合网| 亚洲一区二区精品在线| 久久精品夜夜夜夜久久| 亚洲成人在线网| 亚洲免费视频观看| 免费成人小视频| 国产精品丝袜白浆摸在线| 亚洲国产三级| 亚洲欧美日韩区| 亚洲第一色在线| 午夜久久一区| 欧美系列亚洲系列| 亚洲国产精品久久久久秋霞影院| 亚洲一区在线免费| 亚洲成人在线视频网站|