日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

POJ2112 Optimal Milking

發布時間:2024/4/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POJ2112 Optimal Milking 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這題的大意是有C只牛,K臺機器,C只牛與K臺機器的距離是已知的,現在還知道,K臺機器的最多能容下M只牛,現在問說如何安排這些牛到這些機器上,使得符合上述的限制,同時要使牛與機器的最遠距離最小。具體的做法是二分答案,然后用二分匹配來判可行,可以修改下匈牙利匹配,也可以拆點后用直接的二分匹配,或者用復雜度高點的最大流。

代碼 #include <iostream>
#include
<string>
using namespace std;

const int MAXK = 35;
const int MAXC = 205;
const int MAXM = 20;
const int INF = 1000000;

int K, C, M;
int n, m;
int mm[MAXK + MAXC][MAXK + MAXC];
bool d[MAXC][MAXK * MAXM];
int s[MAXK * MAXM];
int clo[MAXK * MAXM];

void floyd()
{
for(int k = 0; k < C + K; k++)
{
for(int i = 0; i < C + K; i++)
{
for(int j = 0; j < C + K; j++)
{
if(mm[i][k] + mm[k][j] < mm[i][j])
mm[i][j]
= mm[i][k] + mm[k][j];
}
}
}
}

void make_map(int limit)
{
for(int i = 0; i < C; i++)
{
for(int j = 0; j < K; j++)
{
if(mm[K + i][j] <= limit) d[i][j] = true;
else d[i][j] = false;
for(int k = 0; k < M; k++)
{
d[i][j
+ k * K] = d[i][j];
}
}
}
}

bool dfs(int i)
{
for(int j = 0; j < m; j++)
{
if(d[i][j] && s[j] == 0)
{
s[j]
= 1;
if(clo[j] == -1 || dfs(clo[j]))
{
clo[j]
= i;
return true;
}
}
}
return false;
}

bool can(int limit)
{
make_map(limit);
memset(clo,
-1, sizeof(clo));
for(int i = 0; i < n; i++)
{
memset(s,
0, sizeof(s));
if(!dfs(i)) return false;
}
return true;
}

int go()
{
n
= C;
m
= M * K;
floyd();
int low = 1, high = 20000;
while(low <= high)
{
int mid = (low + high) / 2;
if(can(mid)) high = mid - 1;
else low = mid + 1;
}
return low;
}

int main()
{
while(scanf("%d%d%d", &K, &C, &M) != EOF)
{
for(int i = 0; i < K + C; i++)
{
for(int j = 0; j < K + C; j++)
{
scanf(
"%d", &mm[i][j]);
if(mm[i][j] == 0) mm[i][j] = INF;
}
}
printf(
"%d\n", go());
}
}

?

轉載于:https://www.cnblogs.com/litstrong/archive/2010/09/22/1833198.html

總結

以上是生活随笔為你收集整理的POJ2112 Optimal Milking的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。