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

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 閱讀(3364) 評論(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>
            久久久久久亚洲综合影院红桃| 欧美日韩精品免费观看视频完整| 亚洲国产视频直播| 久久一区激情| 欧美韩日一区二区三区| 亚洲国产专区校园欧美| 日韩午夜电影在线观看| 亚洲欧美经典视频| 久久久久久97三级| 欧美精品一区在线| 国产精品99一区二区| 国内精品久久久久久久97牛牛| 亚洲国产精品99久久久久久久久| 亚洲免费观看高清完整版在线观看熊| 亚洲午夜久久久久久久久电影院| 久久久久91| 日韩午夜在线视频| 久久精品一二三区| 欧美网站在线观看| 伊人久久综合| 午夜综合激情| 亚洲国产女人aaa毛片在线| 欧美日韩p片| 久久精品99久久香蕉国产色戒| 久久精品亚洲精品| 欧美精品在线网站| 一区精品久久| 欧美在线短视频| 亚洲日本理论电影| 久久久一二三| 国产精品国产亚洲精品看不卡15 | 亚洲精品视频一区| 午夜精品视频在线| 亚洲人成网站色ww在线| 欧美一区二区视频免费观看| 欧美日韩激情小视频| 在线日韩视频| 久久精品亚洲精品| 亚洲无线观看| 欧美色图五月天| 日韩亚洲精品视频| 欧美成在线视频| 久久午夜激情| 黄网站色欧美视频| 久久成人羞羞网站| 午夜精品一区二区在线观看| 欧美日韩视频| 一区二区三区产品免费精品久久75 | 久久精品1区| 国产亚洲人成a一在线v站 | 国产一区二区三区日韩| 一区二区三区国产在线| 亚洲国产精选| 欧美国产综合视频| 亚洲精品国产精品国自产在线| 免费观看欧美在线视频的网站| 午夜免费在线观看精品视频| 国产精品你懂的| 性久久久久久久| 亚洲在线观看| 国产欧美日韩亚州综合| 欧美在线关看| 欧美一级在线亚洲天堂| 国内精品亚洲| 欧美成年人视频| 免费视频最近日韩| 夜夜嗨av一区二区三区四季av| 亚洲欧洲在线播放| 国产精品vvv| 久久精品国产亚洲a| 欧美影院在线播放| 亚洲电影免费| 欧美日韩一区免费| 久久精品二区三区| 亚洲女性裸体视频| 国产视频精品网| 欧美成人精品h版在线观看| 美女视频黄 久久| 亚洲网站在线播放| 亚洲免费在线| 禁断一区二区三区在线| 亚洲电影免费观看高清| 欧美三级午夜理伦三级中视频| 午夜精品久久久久久久99水蜜桃| 西西人体一区二区| 亚洲理伦电影| 性感少妇一区| 99国产精品99久久久久久粉嫩| 亚洲网站视频福利| 亚洲电影第1页| 一本到高清视频免费精品| 国产日韩欧美高清免费| 亚洲成人在线网| 国产精品自拍三区| 亚洲福利视频专区| 国产免费成人av| 亚洲人屁股眼子交8| 国产精一区二区三区| 亚洲电影成人| 国产一区二区剧情av在线| 亚洲国产婷婷| 黄色成人免费观看| 亚洲午夜精品国产| 最新国产精品拍自在线播放| 亚洲免费视频成人| 9l视频自拍蝌蚪9l视频成人 | 麻豆亚洲精品| 久久精品导航| 国产精品jizz在线观看美国| 欧美国产一区二区| 国产色婷婷国产综合在线理论片a| 亚洲国产精品一区二区第四页av| 国产三区精品| 亚洲视频在线观看| 一本色道久久88综合亚洲精品ⅰ| 久久久久国产精品麻豆ai换脸| 亚洲一区免费视频| 欧美精品在线观看一区二区| 老色批av在线精品| 国产婷婷97碰碰久久人人蜜臀| 在线中文字幕一区| 日韩亚洲欧美成人一区| 麻豆精品一区二区av白丝在线| 久久蜜臀精品av| 国产日韩欧美在线播放不卡| 中日韩视频在线观看| 亚洲精品在线视频| 欧美大片免费| 亚洲韩国日本中文字幕| 亚洲第一中文字幕在线观看| 久久久精品国产99久久精品芒果| 欧美主播一区二区三区| 国产欧美日韩三级| 欧美一区二区视频在线| 久久精品主播| 一区二区三区在线高清| 久久久999| 亚洲福利视频网| 99国产精品国产精品久久| 国产精品久久久久久久久免费| 亚洲另类春色国产| 亚洲图片激情小说| 国产精品久久久久久久久久免费| 99国产精品国产精品久久 | 女同一区二区| 在线成人免费视频| 欧美bbbxxxxx| 日韩一级大片| 亚洲欧美另类久久久精品2019| 国产精品视频一区二区三区 | 欧美日本国产在线| 亚洲特色特黄| 久久一区二区三区av| 亚洲国产福利在线| 欧美日韩p片| 午夜视频久久久久久| 欧美11—12娇小xxxx| 夜夜爽www精品| 国产欧美日本一区二区三区| 久久国产精品72免费观看| 欧美黑人在线播放| 亚洲综合丁香| 1024精品一区二区三区| 欧美日韩三级| 久久久精品国产免费观看同学| 亚洲第一毛片| 欧美资源在线观看| 亚洲人精品午夜在线观看| 国产精品久久国产精麻豆99网站| 欧美一级欧美一级在线播放| 欧美黄色免费网站| 午夜视频久久久| 亚洲国产精品美女| 国产精品激情| 免费亚洲婷婷| 性欧美长视频| 日韩亚洲精品电影| 欧美成人自拍视频| 久久精品日产第一区二区| 一本久久综合| 亚洲片区在线| 国产一区二区在线观看免费| 欧美日韩另类综合| 久久综合久久综合这里只有精品 | 亚洲精品永久免费| 国产亚洲综合在线| 欧美新色视频| 欧美国产三区| 久久精品欧美| 亚洲深夜福利视频| 亚洲精品久久久久| 欧美国产一区二区| 久热精品在线| 久久久国产精品一区二区中文| 一区二区国产精品| 亚洲三级视频在线观看| 亚洲国产精品va| 亚洲第一天堂av| 在线观看视频一区二区| 国内精品视频666|