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

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>
            亚洲午夜精品国产| 欧美日本国产在线| 亚洲图片激情小说| 久久久久久久综合狠狠综合| 午夜精品影院在线观看| 欧美激情一区二区三区在线视频 | 新片速递亚洲合集欧美合集| 免费欧美在线视频| 麻豆精品视频在线观看| 国产亚洲va综合人人澡精品| aa级大片欧美| 中文av字幕一区| 欧美精品在线网站| 亚洲国产精品一区二区第四页av | 欧美激情精品久久久六区热门| 国产精品日韩专区| 一区二区国产日产| 中文在线资源观看网站视频免费不卡 | 精品成人国产| 亚洲欧美日韩综合一区| 亚洲欧美视频一区| 国产精品第十页| 亚洲精品视频在线播放| 亚洲美女在线国产| 欧美国产成人精品| 欧美国产免费| 亚洲精品中文字幕在线| 欧美激情久久久久| 亚洲日本乱码在线观看| 日韩午夜在线视频| 欧美日韩在线观看一区二区| 亚洲精品麻豆| 亚洲一区在线观看视频| 国产精品va在线播放| 亚洲视频免费在线| 欧美在线观看视频在线| 国内一区二区三区在线视频| 久久久久久一区二区三区| 久久资源av| 亚洲精品久久久一区二区三区| 欧美精品在线一区| 好看的av在线不卡观看| 麻豆精品在线播放| 亚洲伦理中文字幕| 欧美一级视频精品观看| 国产一区二区高清视频| 蜜桃av噜噜一区| 亚洲精品综合| 久久99伊人| 最新成人在线| 欧美极品一区| 野花国产精品入口| 久久精品国产69国产精品亚洲| 激情欧美国产欧美| 欧美日本亚洲韩国国产| 午夜一区在线| 亚洲国产成人久久综合一区| 亚洲综合精品一区二区| 尤物yw午夜国产精品视频| 欧美日韩大片一区二区三区| 午夜欧美视频| 亚洲福利视频二区| 亚洲免费影视第一页| 影音先锋久久久| 欧美三区美女| 久久中文久久字幕| 亚洲一区二区三区四区在线观看 | 亚洲欧美bt| 欧美福利一区| 午夜精品久久久久| 亚洲精品视频免费在线观看| 国产日韩欧美电影在线观看| 欧美国产综合| 久久精品夜色噜噜亚洲aⅴ| 一本色道久久加勒比88综合| 麻豆av一区二区三区久久| 亚洲一区二区久久| 亚洲激情一区二区| 国产色综合天天综合网| 欧美日韩精品免费看| 美女爽到呻吟久久久久| 性刺激综合网| 亚洲无限av看| 99成人在线| 亚洲欧洲视频| 欧美不卡视频一区| 久久精品2019中文字幕| 亚洲欧美在线播放| 一区二区三区www| 亚洲黄色大片| 在线成人激情视频| 国产日韩亚洲欧美| 国产精品久久久久久久久婷婷 | 最近中文字幕mv在线一区二区三区四区| 六月丁香综合| 伊人成人开心激情综合网| 欧美午夜精品久久久久久超碰| 欧美91大片| 久久国产乱子精品免费女 | 欧美日韩视频在线一区二区观看视频 | 欧美视频不卡中文| 欧美久久一区| 欧美成人午夜剧场免费观看| 久久久久免费视频| 久久久久久亚洲精品中文字幕| 午夜伦理片一区| 午夜电影亚洲| 午夜久久久久久| 性做久久久久久久免费看| 亚洲欧美日韩直播| 亚洲欧美一区二区在线观看| 亚洲免费在线观看| 亚洲欧美日韩一区二区三区在线| 亚洲午夜精品国产| 亚洲欧美美女| 欧美一区午夜视频在线观看| 久久精品国产99| 久久婷婷人人澡人人喊人人爽| 久热精品视频| 欧美福利网址| 欧美日韩综合视频网址| 国产精品视频一| 国产真实乱偷精品视频免| 国产综合在线视频| 亚洲大片在线| 在线亚洲欧美| 性做久久久久久| 久久久亚洲国产天美传媒修理工 | 亚洲午夜一区二区| 午夜欧美电影在线观看| 久久精品国产一区二区电影| 老司机成人在线视频| 亚洲国产高清在线| 99国产精品久久久久久久成人热| 亚洲一区二区三区三| 久久国产综合精品| 欧美韩日一区二区三区| 国产精品久久久久久妇女6080| 国产在线拍揄自揄视频不卡99| 亚洲国产成人久久综合一区| 亚洲午夜精品视频| 久久久精品五月天| 91久久精品国产91性色tv| 亚洲视频欧美在线| 久久久精品999| 欧美日韩精品中文字幕| 国产日韩欧美另类| 亚洲精品一区二区在线| 欧美有码视频| 最新国产乱人伦偷精品免费网站| 亚洲一区二区影院| 免费观看亚洲视频大全| 国产精品私人影院| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲国产婷婷综合在线精品| 亚洲欧美在线aaa| 欧美91精品| 亚洲欧美欧美一区二区三区| 欧美国产在线观看| 亚洲精品一区在线观看香蕉| 久久av一区二区三区漫画| 欧美日韩在线观看一区二区三区| 狠狠88综合久久久久综合网| 亚洲无毛电影| 亚洲电影免费观看高清| 久久激情视频| 国产精品人成在线观看免费 | 久久一区二区精品| 亚洲网站在线看| 欧美精品日韩| 亚洲国产日韩美| 久久久久久久999精品视频| 一区二区三区四区国产精品| 麻豆九一精品爱看视频在线观看免费 | 国产情人综合久久777777| 一区二区三区久久久| 欧美大胆a视频| 久久久久久一区| 好吊一区二区三区| 欧美在线网站| 亚洲欧美激情视频| 国产精品啊v在线| 在线亚洲伦理| 亚洲精品婷婷| 欧美精品在欧美一区二区少妇| 最新国产精品拍自在线播放| 欧美va亚洲va香蕉在线| 久久精品国产99精品国产亚洲性色 | 亚洲国产精品福利| 蜜桃av噜噜一区| 久久久精品tv| 在线观看视频一区二区欧美日韩| 玖玖在线精品| 久久婷婷一区| 亚洲欧洲一区二区在线播放| 免费欧美网站| 欧美国产在线电影| 一本一本大道香蕉久在线精品| 亚洲精品免费在线| 欧美日韩成人精品|