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

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>
            国产精品第一区| 亚洲欧美亚洲| 午夜免费日韩视频| 亚洲欧美变态国产另类| 亚洲视频香蕉人妖| 亚洲欧美综合国产精品一区| 久久女同互慰一区二区三区| 久久男人资源视频| 免费中文字幕日韩欧美| 欧美激情欧美激情在线五月| 亚洲精品美女91| 亚洲精品一二三| 亚洲一区二区精品在线观看| 久久精品亚洲乱码伦伦中文| 欧美v日韩v国产v| 欧美日韩午夜在线视频| 国产精自产拍久久久久久蜜| 黑人极品videos精品欧美裸| 亚洲激情视频在线| 亚洲欧美另类在线| 老司机一区二区三区| 亚洲精品麻豆| 欧美一区亚洲| 欧美美女bbbb| 激情亚洲网站| 亚洲欧美日韩国产一区二区三区| 久久婷婷久久一区二区三区| 日韩午夜免费| 老司机一区二区| 国产精品区免费视频| 91久久国产综合久久| 欧美一级黄色录像| 亚洲第一综合天堂另类专| 亚洲主播在线观看| 欧美日韩福利视频| 亚洲电影成人| 久久久噜噜噜久久中文字幕色伊伊| 亚洲精品一区在线| 久久亚洲综合网| 国产精品亚洲激情| 在线综合亚洲| 亚洲国产精品123| 欧美中文字幕精品| 国产精品视频xxxx| 亚洲免费在线电影| 亚洲久久一区| 欧美精品一区在线发布| 亚洲国产国产亚洲一二三| 欧美亚洲免费| 中文日韩在线视频| 欧美日韩亚洲综合| 999在线观看精品免费不卡网站| 久久久久久日产精品| 午夜久久久久久久久久一区二区| 欧美日韩亚洲一区二区| 欧美日本一道本在线视频| 亚洲国产一区二区精品专区| 免费欧美在线| 久久男女视频| 亚洲第一综合天堂另类专| 免费成人高清视频| 久久理论片午夜琪琪电影网| 韩国美女久久| 男人的天堂亚洲| 欧美成人久久| 久久网站免费| 久久久91精品| 亚洲国产人成综合网站| 亚洲黄色片网站| 欧美激情一区二区三区四区| 99精品热6080yy久久| 日韩一区二区免费看| 欧美日韩在线播放三区| 亚洲一区www| 亚洲一区二区高清视频| 国产一区二区三区四区hd| 久久亚洲影音av资源网| 老司机一区二区三区| 亚洲看片免费| 亚洲手机视频| 国产午夜精品美女毛片视频| 久久夜色精品| 久久综合激情| 亚洲午夜91| 欧美一级欧美一级在线播放| 国产亚洲成av人片在线观看桃| 久久综合国产精品| 欧美激情影音先锋| 欧美有码在线视频| 美日韩精品视频免费看| 亚洲男人影院| 久久婷婷丁香| 亚洲尤物精选| 久久久久综合| 亚洲在线不卡| 久久琪琪电影院| 亚洲一区二区欧美日韩| 久久激情综合| 亚洲视频在线观看网站| 久久久精品日韩| 亚洲免费婷婷| 欧美激情免费观看| 久久人人97超碰人人澡爱香蕉| 欧美日韩xxxxx| 久久人体大胆视频| 国产精品国产三级国产普通话蜜臀| 久久视频国产精品免费视频在线| 欧美国产日韩a欧美在线观看| 欧美伊久线香蕉线新在线| 欧美激情综合五月色丁香| 久久一区二区三区四区五区| 国产精品video| 亚洲人成人99网站| 在线观看中文字幕不卡| 亚洲欧美日韩成人| 亚洲午夜一级| 欧美高清自拍一区| 久久五月天婷婷| 国产欧美日韩综合精品二区| 一区二区精品国产| 99视频精品免费观看| 久久性色av| 久久久噜噜噜久久中文字免| 国产欧美日韩高清| 亚洲一区综合| 亚洲欧美另类在线观看| 欧美午夜精品久久久久久久| 亚洲人成在线观看| 亚洲三级观看| 亚洲国产日本| 久久精品国产亚洲aⅴ| 亚洲欧美日韩一区二区三区在线观看| 亚洲人成在线观看| 亚洲激情第一页| 久久三级福利| 亚洲视频中文字幕| 久久人人97超碰国产公开结果| 亚洲第一主播视频| 欧美一区中文字幕| 欧美一区二区免费| 国产精品萝li| 亚洲一区激情| 香蕉av777xxx色综合一区| 欧美亚洲成人网| 亚洲精品国产精品久久清纯直播| 亚洲欧洲一区二区三区| 久久在线视频| 亚洲高清色综合| 亚洲毛片播放| 欧美日韩成人在线播放| 亚洲电影一级黄| 一区二区三区视频在线观看| 欧美啪啪成人vr| 亚洲一区二区三区在线视频| 久久精品亚洲国产奇米99| 一色屋精品视频免费看| 欧美成人国产| 中文在线一区| 久久一区亚洲| 亚洲精品久久久久久久久久久久久| 欧美激情免费观看| 亚洲综合日本| 欧美v亚洲v综合ⅴ国产v| 一区二区三区不卡视频在线观看| 国产精品草草| 久久精品国产99| 亚洲精品免费在线播放| 欧美一区二区三区免费视频| 伊人激情综合| 欧美日韩天天操| 久久国产免费| 日韩一区二区精品视频| 久久久综合视频| 一区二区三区四区蜜桃| 国产一区清纯| 欧美日韩在线一二三| 久久精品综合| 亚洲一区二区三区精品视频| 欧美成人中文字幕| 性欧美1819sex性高清| 亚洲欧洲一区二区在线播放| 国产美女一区二区| 欧美久久久久久蜜桃| 久久精品盗摄| 亚洲一二三区在线| 亚洲国产欧美在线| 久久伊人免费视频| 欧美伊久线香蕉线新在线| 亚洲精品久久久久久下一站 | 亚洲午夜伦理| 黑人巨大精品欧美黑白配亚洲| 欧美日韩国产精品专区| 久久高清福利视频| 亚洲在线国产日韩欧美| 亚洲美女在线看| 最近中文字幕mv在线一区二区三区四区| 亚洲欧美在线一区| 亚洲午夜视频在线观看| 亚洲精品久久久久久下一站| 一区二区亚洲欧洲国产日韩|