POJ 3216 二分匹配
(2010-09-18 21:11:18)
标签:
poj3216二分匹配it |
分类: 图论 |
题目描述:
有q个地点。 m个任务。 每个任务有p,t,d三个属性。P表示任务的地点(1~q),t表示任务的开始时间,d表示任务的需要时间。
告诉你这q个地点间相互之间的距离。
问你至少需要多少个人来完成任务。
解题报告:
二分匹配:
左边右边各m个点。
如果j任务可以在i任务之后继续开始(i任务结束后,再赶到j任务的地点仍能早于j任务的开始时间)
那么连接i(左边),j(右边)
最坏的情况是每个任务都需要安排一个人。
那么,这样的建图,每连一条边表示可以节省一个人。
连接多少条边就是节省多少人。二分匹配解之。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int q, m, g[20][20], x[200][3];
int match[200], vst[200], gg[200][200];
int find(int u)
{
}
int solve()
{
}
int main()
{