/*
题意: 出租车 有一个出发的时间,从点(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(二分图匹配)的更多相关文章

  1. poj 2060 Taxi Cab Scheme (二分匹配)

    Taxi Cab Scheme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5710   Accepted: 2393 D ...

  2. UVA 1201 - Taxi Cab Scheme(二分图匹配+最小路径覆盖)

    UVA 1201 - Taxi Cab Scheme 题目链接 题意:给定一些乘客.每一个乘客须要一个出租车,有一个起始时刻,起点,终点,行走路程为曼哈顿距离,每辆出租车必须在乘客一分钟之前到达.问最 ...

  3. 二分图最小路径覆盖--poj2060 Taxi Cab Scheme

    Taxi Cab Scheme 时间限制: 1 Sec  内存限制: 64 MB 题目描述 Running a taxi station is not all that simple. Apart f ...

  4. UVa 二分图匹配 Examples

    这些都是刘汝佳的算法训练指南上的例题,基本包括了常见的几种二分图匹配的算法. 二分图是这样一个图,顶点分成两个不相交的集合X , Y中,其中同一个集合中没有边,所有的边关联在两个集合中. 给定一个二分 ...

  5. Taxi Cab Scheme POJ && HDU

    Online Judge Problem Set Authors Online Contests User Web Board Home Page F.A.Qs Statistical Charts ...

  6. Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配

    /** 题目:Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配 链接:https://vjudge.net/proble ...

  7. UVA 12549 - 二分图匹配

    题意:给定一个Y行X列的网格,网格种有重要位置和障碍物.要求用最少的机器人看守所有重要的位置,每个机器人放在一个格子里,面朝上下左右四个方向之一发出激光直到射到障碍物为止,沿途都是看守范围.机器人不会 ...

  8. POJ 1274 裸二分图匹配

    题意:每头奶牛都只愿意在她们喜欢的那些牛栏中产奶,告诉每头奶牛愿意产奶的牛棚编号,求出最多能分配到的牛栏的数量. 分析:直接二分图匹配: #include<stdio.h> #includ ...

  9. BZOJ1433 ZJOI2009 假期的宿舍 二分图匹配

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2375  Solved: 1005[Submit][Sta ...

随机推荐

  1. ORA-00060:等待资源时检测到死锁的一种处理方法

    先执行脚本: SELECT p.sipid, a.serial#, c.object_name, b.session_id, b.oracle_username, b.os_user_name FRO ...

  2. install skype4.3 in ubuntu15.04

    Canonical Partners repository finally adds support for Ubuntu 15.04. Here’s how to enable the reposi ...

  3. spring 3.1 配置 JCR 303 Bean Validation

    A) 导入Hibernate-Validator  要使用JSR303 校验框架, 需要加入框架的具体实现Hibernate-Validator, 在soureforge上下载最新的Hibernate ...

  4. 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. ...

  5. ABP框架详解(二)AbpKernelModule

    AbpKernelModule类是Abp框架自己的Module,它也跟所有其他的Module一样继承自AbpModule,重写PreInitialize,Initialize,PostInitiali ...

  6. (转)Unity AssetBundle爬坑手记

    转自:http://www.cnblogs.com/ybgame/p/3973177.html 这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对Asset ...

  7. c# 列举所有窗口和子窗口

    private delegate bool WNDENUMPROC(IntPtr hWnd, int lParam); [DllImport("user32.dll", Exact ...

  8. 【腾讯bugly干货分享】解耦---Hybrid H5跨平台性思考

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1275& ...

  9. 一个App完成入门篇(二)-搭建主框架

    通过第一课的学习,你已经掌握了如何通过debug调试器来跟PC上的设计器联调来实时查看UI设计效果.调试代码了,接下来通过一系列的demo开发教学你将很快上手学习到如何开发一个真正的App. 要开发A ...

  10. 冲刺阶段 day 10

    项目进展 目前我们已经完成了系部管理,教师管理,班级管理,学生管理这四大部分代码的编写及数据库的搭建与连接.就差最后专业管理这一部分了. 存在问题 其实我们从开始这个项目到现在,最大的问题还是在代码编 ...