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

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 閱讀(3363) 評論(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>
            欧美一区二区三区在线免费观看| 激情欧美丁香| 亚洲无吗在线| 亚洲影视在线| 久久精品国产综合精品| 久久久久久久尹人综合网亚洲| 久久国产精品第一页| 久久青草欧美一区二区三区| 久久综合色88| 欧美日本在线视频| 国产欧美二区| 在线日韩av| 亚洲视频中文| 久久一区二区三区国产精品| 欧美激情第3页| 亚洲亚洲精品三区日韩精品在线视频| 欧美一区午夜视频在线观看| 欧美肥婆在线| 国产一区视频观看| 99国产精品国产精品久久| 亚洲在线观看免费视频| 麻豆精品视频在线观看| 夜夜精品视频一区二区| 久久女同精品一区二区| 亚洲永久字幕| 欧美精品一区二区三区蜜臀 | 亚洲人成7777| 亚洲免费观看在线观看| 亚洲欧美激情在线视频| 欧美日韩精品免费| 国产欧美一区二区三区久久人妖| 亚洲免费小视频| 欧美电影美腿模特1979在线看| 亚洲手机在线| 国产精品欧美日韩久久| 一本一本久久a久久精品综合妖精| 欧美成人精品一区| 久久精品在线观看| 国产亚洲精品v| 欧美va天堂在线| 欧美大片91| 亚洲天堂免费在线观看视频| 日韩一级黄色av| 国产精品美女主播| 久久久夜精品| 欧美激情精品久久久久久蜜臀| 亚洲肉体裸体xxxx137| 亚洲裸体俱乐部裸体舞表演av| 欧美日本一区二区高清播放视频| 亚洲欧美综合v| 一本色道久久99精品综合| 国产精品区一区| 久久久精品国产免费观看同学| 亚洲欧美一区二区三区久久 | 国产精品va在线播放我和闺蜜| 欧美乱大交xxxxx| 国产日韩欧美在线| 国产一级精品aaaaa看| 亚洲国产天堂久久综合网| 国产精品夜夜嗨| 欧美小视频在线观看| 欧美国产成人精品| 国产欧美一区二区精品秋霞影院| 国内精品视频666| 久久久久久自在自线| 久久se精品一区精品二区| 国产日产欧产精品推荐色| 美女国内精品自产拍在线播放| 美女精品在线| 久久久久国内| 国产午夜精品久久久久久久| 麻豆av福利av久久av| 欧美日韩hd| 老司机免费视频一区二区| 国产精品久久久久9999| 久久精品一区二区三区四区| 欧美日韩情趣电影| 亚洲国产一二三| 1769国产精品| 欧美成人免费va影院高清| 亚洲国产精品第一区二区| 中文久久乱码一区二区| 国产日韩欧美一二三区| 亚洲人永久免费| 一区二区三区在线高清| 91久久精品www人人做人人爽 | 精品成人在线观看| 性欧美超级视频| 欧美激情第10页| 亚洲综合日韩在线| 欧美成va人片在线观看| 亚洲第一成人在线| 欧美视频免费在线| 在线性视频日韩欧美| 91久久精品网| 欧美精品国产一区二区| 欧美成人一区二区三区在线观看 | 亚洲一区黄色| 99在线观看免费视频精品观看| 久久精品国产一区二区三| 久久大逼视频| 国产日韩精品一区二区三区在线| 亚洲男女自偷自拍图片另类| 国产精品99久久久久久人| 欧美调教视频| 亚洲一区二区三区四区在线观看| 性欧美xxxx视频在线观看| 国产中文一区二区| 女女同性女同一区二区三区91| 亚洲第一在线视频| 亚洲欧美国产三级| 99视频精品免费观看| 黄色另类av| 一区在线免费观看| 尤物在线观看一区| 亚洲国产另类久久久精品极度| 麻豆成人在线观看| 久久精品一区中文字幕| 中日韩男男gay无套| 欧美黄色一区二区| 中日韩在线视频| 亚洲美女性视频| 在线免费精品视频| 亚洲激情一区| 欧美一区二区免费| 久久成人免费视频| 久久男女视频| 国产精品日韩欧美一区二区三区| 免费观看国产成人| 蜜桃久久av一区| 久久久www| 久久手机免费观看| 欧美猛交免费看| 国产精品私拍pans大尺度在线 | 亚洲欧美日韩视频一区| 午夜日韩在线观看| 久久躁狠狠躁夜夜爽| 亚洲国产高清视频| 午夜一区二区三区在线观看| 先锋影音一区二区三区| 亚洲欧美日韩国产综合精品二区 | 99精品久久免费看蜜臀剧情介绍| 午夜一区二区三区不卡视频| 亚洲电影中文字幕| 艳女tv在线观看国产一区| 亚洲四色影视在线观看| 亚洲一区二区高清| 欧美一区三区二区在线观看| 久久精品亚洲国产奇米99| 欧美日韩中文字幕日韩欧美| 欧美国产日产韩国视频| 国产一区二区三区无遮挡| 亚洲三级色网| 欧美国产亚洲精品久久久8v| 欧美制服第一页| 国产欧美高清| 欧美高清视频一区二区三区在线观看| 久久先锋影音| 午夜精品久久久久久久久| 欧美大片免费观看在线观看网站推荐| 欧美激情一区三区| 亚洲成人在线视频网站| 欧美成人69| 一区在线播放| 久久久91精品国产| 亚洲欧美春色| 国产精品自拍网站| 欧美一级日韩一级| 久久爱www| 日韩视频免费在线观看| 欧美一区二区视频网站| 国产精品一区二区久久久久| 亚洲午夜视频| 亚洲破处大片| 欧美精品福利视频| 亚洲女优在线| 免费在线亚洲欧美| 亚洲少妇诱惑| aⅴ色国产欧美| 日韩亚洲精品视频| 宅男精品视频| 一区二区三区在线观看视频 | 欧美激情中文不卡| 欧美日韩一区二区三区在线| 久久大逼视频| 欧美日韩激情小视频| 欧美国产高清| 国产精品国产三级国产普通话三级| 亚洲欧美国产77777| 久久精品人人做人人爽电影蜜月| 亚洲国产欧美精品| 亚洲欧美春色| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲永久网站| 欧美成人免费va影院高清| 久久久久久久91| 国产一区二区三区丝袜| 一区二区成人精品| 亚洲国产日韩在线一区模特| 欧美在线免费看|