解题报告
http://blog.csdn.net/juncoder/article/details/38340447
题意:
B个猪圈,N头猪,每头猪对每个猪圈有一个满意值,要求安排这些猪使得最大满意和最小满意的猪差值最小
思路:
二分图的多重匹配问题;
猪圈和源点连边,容量为猪圈容量,猪与汇点连边,容量1;
猪圈和猪之间连线取决所取的满意值范围;
二分查找满意值最小差值的范围。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#define inf 99999999
using namespace std;
int n,m,b,mmap[1030][22],edge[1030][1030],l[1030],c[22];
int bfs()
{
memset(l,-1,sizeof(l));
l[0]=0;
int i;
queue<int >Q;
Q.push(0);
while(!Q.empty()) {
int u=Q.front();
Q.pop();
for(i=0; i<=m; i++) {
if(edge[u][i]&&l[i]==-1) {
l[i]=l

该博客介绍了如何运用二分图多重匹配和网络流算法解决一个分配问题,旨在最大化满意值并最小化猪群中最大满意值与最小满意值的差距。通过连接猪圈和源点、猪与汇点,并根据满意值范围确定猪圈和猪之间的连接,最终通过二分查找找到最优解。

799

被折叠的 条评论
为什么被折叠?



