poj2060Taxi Cab Scheme(二分图匹配)
/*
题意: 出租车 有一个出发的时间,从点(a, b)到点(c, d),时间为
abs(a-c)+abs(b-d)! 一辆车可以在运完一个乘客后运另一个乘客,
条件是此车要在预约开始前一分钟之前到达出发地, 问最少需要几辆车
搞定所有预约。 思路:有向边进行建图,因为出发时间是升序的!
t0: (a0, b0) ->(c0, d0)表示预约在t0时间出发从(a,b)到(c,d);//节点x
t1: (a1, b1) ->(c1, d1)表示预约在t1时间出发从(a1,b1)到(c1,d1);//节点y 如果可能的话从t0时间出发的车到达目的地后,如果满足从(c,d)到(a1,b1)
也就是从第一个目的地到达下一个出发地的时间t2 + 1<=t1, 那么完全就不用
其他的车再来了!两次的预约都搞定了!
如果满足的话,节点x 和 节点y建立一条有向边!
最后通过匈牙利算法搞定.....
*/
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define M 505
using namespace std; struct point{
int x, y;
point(){}
point(int x, int y){
this->x=x;
this->y=y;
}
int operator -(point a) {
return abs(x-a.x) + abs(y-a.y);
}
}; struct node{ int begin, end;
point s, d;
}; node nd[M];
vector<int>v[M];
int vis[M];
int link[M]; int n; bool dfs(int cur){
int len=v[cur].size();
for(int i=; i<len; ++i){
int u=v[cur][i];
if(vis[u]) continue;
vis[u]=;
if(!link[u] || dfs(link[u])){
link[u]=cur;
return true;
}
}
return false;
} int main(){
int t;
scanf("%d", &t);
while(t--){ scanf("%d", &n);
for(int i=; i<=n; ++i){
int b, e, x1, y1, x2, y2;
scanf("%d:%d %d %d %d %d", &b, &e, &x1, &y1, &x2, &y2);
nd[i].begin=b*+e;
nd[i].s=point(x1, y1);
nd[i].d=point(x2, y2);
nd[i].end=nd[i].begin+(nd[i].s-nd[i].d);
}
for(int i=; i<n; ++i)
for(int j=i+; j<=n; ++j){
if(nd[j].begin>=nd[i].end+(nd[i].d-nd[j].s)+)//如果能够满足条件爱你到达另一个出发地点,两个节点之间建立一条有向边
v[i].push_back(j);
}
int ans=;
memset(link, , sizeof(link));
for(int i=; i<=n; ++i){
memset(vis, , sizeof(vis));
if(dfs(i)) ++ans;
}
cout<<n-ans<<endl;
for(int i=; i<=n; ++i)
v[i].clear();
}
return ;
}
poj2060Taxi Cab Scheme(二分图匹配)的更多相关文章
- poj 2060 Taxi Cab Scheme (二分匹配)
Taxi Cab Scheme Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5710 Accepted: 2393 D ...
- UVA 1201 - Taxi Cab Scheme(二分图匹配+最小路径覆盖)
UVA 1201 - Taxi Cab Scheme 题目链接 题意:给定一些乘客.每一个乘客须要一个出租车,有一个起始时刻,起点,终点,行走路程为曼哈顿距离,每辆出租车必须在乘客一分钟之前到达.问最 ...
- 二分图最小路径覆盖--poj2060 Taxi Cab Scheme
Taxi Cab Scheme 时间限制: 1 Sec 内存限制: 64 MB 题目描述 Running a taxi station is not all that simple. Apart f ...
- UVa 二分图匹配 Examples
这些都是刘汝佳的算法训练指南上的例题,基本包括了常见的几种二分图匹配的算法. 二分图是这样一个图,顶点分成两个不相交的集合X , Y中,其中同一个集合中没有边,所有的边关联在两个集合中. 给定一个二分 ...
- Taxi Cab Scheme POJ && HDU
Online Judge Problem Set Authors Online Contests User Web Board Home Page F.A.Qs Statistical Charts ...
- Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配
/** 题目:Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配 链接:https://vjudge.net/proble ...
- UVA 12549 - 二分图匹配
题意:给定一个Y行X列的网格,网格种有重要位置和障碍物.要求用最少的机器人看守所有重要的位置,每个机器人放在一个格子里,面朝上下左右四个方向之一发出激光直到射到障碍物为止,沿途都是看守范围.机器人不会 ...
- POJ 1274 裸二分图匹配
题意:每头奶牛都只愿意在她们喜欢的那些牛栏中产奶,告诉每头奶牛愿意产奶的牛棚编号,求出最多能分配到的牛栏的数量. 分析:直接二分图匹配: #include<stdio.h> #includ ...
- BZOJ1433 ZJOI2009 假期的宿舍 二分图匹配
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2375 Solved: 1005[Submit][Sta ...
随机推荐
- ORA-00060:等待资源时检测到死锁的一种处理方法
先执行脚本: SELECT p.sipid, a.serial#, c.object_name, b.session_id, b.oracle_username, b.os_user_name FRO ...
- install skype4.3 in ubuntu15.04
Canonical Partners repository finally adds support for Ubuntu 15.04. Here’s how to enable the reposi ...
- spring 3.1 配置 JCR 303 Bean Validation
A) 导入Hibernate-Validator 要使用JSR303 校验框架, 需要加入框架的具体实现Hibernate-Validator, 在soureforge上下载最新的Hibernate ...
- How to Install JAVA 8 (JDK/JRE 8u111) on Debian 8 & 7 via PPA
Oracle JAVA 8 Stable release has been released on Mar,18 2014 and available to download and install. ...
- ABP框架详解(二)AbpKernelModule
AbpKernelModule类是Abp框架自己的Module,它也跟所有其他的Module一样继承自AbpModule,重写PreInitialize,Initialize,PostInitiali ...
- (转)Unity AssetBundle爬坑手记
转自:http://www.cnblogs.com/ybgame/p/3973177.html 这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对Asset ...
- c# 列举所有窗口和子窗口
private delegate bool WNDENUMPROC(IntPtr hWnd, int lParam); [DllImport("user32.dll", Exact ...
- 【腾讯bugly干货分享】解耦---Hybrid H5跨平台性思考
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1275& ...
- 一个App完成入门篇(二)-搭建主框架
通过第一课的学习,你已经掌握了如何通过debug调试器来跟PC上的设计器联调来实时查看UI设计效果.调试代码了,接下来通过一系列的demo开发教学你将很快上手学习到如何开发一个真正的App. 要开发A ...
- 冲刺阶段 day 10
项目进展 目前我们已经完成了系部管理,教师管理,班级管理,学生管理这四大部分代码的编写及数据库的搭建与连接.就差最后专业管理这一部分了. 存在问题 其实我们从开始这个项目到现在,最大的问题还是在代码编 ...