题目链接:uva 1201 - Taxi Cab Scheme
建图,X和Y集合均为N个点,如果接完第i个人之后来得及接j,那么从Xi建一条边道Yj。做最大匹配,如果选中Xi到Yj这条边,说明i和j用的是同一辆车,那么需要几辆车即为没有边连入的Y集合点数个数,即为N-最大匹配数。
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 505;
int N, L[maxn], K[maxn];
vector<int> G[maxn];
bool S[maxn], T[maxn];
struct Point {
int x, y;
void read() { scanf("%d%d", &x, &y); }
}A[maxn], B[maxn];
int dis(Point a, Point b