uva 1201 - Taxi Cab Scheme(二分图匹配)

该博客主要讨论了UVa 1201问题——出租车调度方案。通过建立X和Y两个集合的图,并判断接载乘客i后是否能及时接乘客j,形成边Xi到Yj。接着,运用二分图匹配算法找出最大匹配。若Xi到Yj的边被选中,则表明i和j同乘一辆车。最终,所需出租车数量为未被匹配的Y集合点数,即N减去最大匹配数。
摘要由CSDN通过智能技术生成

题目链接: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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值