poj 2060 Taxi Cab Scheme(DAG图的最小路径覆盖)
题意:
出租车公司有M个订单。
订单格式: hh:mm a b c d 含义:在hh:mm这个时刻客人将从(a,b)这个位置出发,他(她)要去(c,d)这个位置。
规定1:从(a,b)到(c,d)所花的时间为:abs(a-c)+abs(b-d)。
规定2:一辆出租车如果要接单,必须在客人出发前1分钟(包括)以前接单。
问,最少派出多少辆出租车,可以完成所有任务。
思路:
把每一笔单看成一个点,如果完成第i个单后可以接到第j个单,则 i->j连上线。
则题为:求这个DAG图的最小路径覆盖。
代码: *:记得要初始化!
struct node{
int a,b,c,d,beginTime;
}ride[505];
int T,n;
char s[55];
vector<int> graph[505];
int cx[505],cy[505];
bool bmask[505];
int findPath(int u){
int L=graph[u].size();
rep(i,0,L-1){
int v=graph[u][i];
if(!bmask[v]){
bmask[v]=true;
if(cy[v]==-1||findPath(cy[v])){
cy[v]=u;
cx[u]=v;
return 1;
}
}
}
return 0;
}
int MaxMatch(){
int ans=0;
rep(i,1,n) cx[i]=cy[i]=-1;
rep(i,1,n) if(cx[i]==-1){
mem(bmask,false);
ans+=findPath(i);
}
return ans;
}
int ABS(int x,int y){
return abs(x-y);
}
int main(){
cin>>T;
while(T--){
scanf("%d",&n);
rep(i,1,n) graph[i].clear();
rep(i,1,n){
int hour,minute;
scanf("%d:%d",&hour,&minute);
scanf("%d%d%d%d",&ride[i].a,&ride[i].b,&ride[i].c,&ride[i].d);
ride[i].beginTime=60*hour+minute;
}
rep(i,1,n) rep(j,i+1,n){
if(ride[i].beginTime+ABS(ride[i].a,ride[i].c)+ABS(ride[i].b,ride[i].d)+
ABS(ride[i].c,ride[j].a)+ABS(ride[i].d,ride[j].b)+1<=ride[j].beginTime) graph[i].push_back(j);
}
int dd=MaxMatch();
printf("%d\n",n-dd);
}
}
poj 2060 Taxi Cab Scheme(DAG图的最小路径覆盖)的更多相关文章
- POJ 1442 Air Raid(DAG图的最小路径覆盖)
题意: 有一个城镇,它的所有街道都是单行(即有向)的,并且每条街道都是和两个路口相连.同时已知街道不会形成回路. 可以在任意一个路口放置一个伞兵,这个伞兵会顺着街道走,依次经过若干个路口. 问最少需要 ...
- UVA 1201 - Taxi Cab Scheme(二分图匹配+最小路径覆盖)
UVA 1201 - Taxi Cab Scheme 题目链接 题意:给定一些乘客.每一个乘客须要一个出租车,有一个起始时刻,起点,终点,行走路程为曼哈顿距离,每辆出租车必须在乘客一分钟之前到达.问最 ...
- poj 2060 Taxi Cab Scheme (最小路径覆盖)
http://poj.org/problem?id=2060 Taxi Cab Scheme Time Limit: 1000MS Memory Limit: 30000K Total Submi ...
- hdu1151 Air Raid,DAG图的最小路径覆盖
点击打开链接 有向无环图的最小路径覆盖 = 顶点数- 最大匹配 #include <queue> #include <cstdio> #include <cstring& ...
- poj 2060 Taxi Cab Scheme (二分匹配)
Taxi Cab Scheme Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5710 Accepted: 2393 D ...
- UVALive - 7368 Airports DAG图的最小路径覆盖
题目链接: http://acm.hust.edu.cn/vjudge/problem/356788 Airports Time Limit: 3000MS 问题描述 An airline compa ...
- 1350 Taxi Cab Scheme DAG最小路径覆盖
对于什么是DAG最小路径覆盖以及解题方法在我的另外的博客已经有了.http://www.cnblogs.com/Potato-lover/p/3980470.html 此题的题意: 公交车(出租车)车 ...
- Air Raid POJ - 1422 【有向无环图(DAG)的最小路径覆盖【最小不相交路径覆盖】 模板题】
Consider a town where all the streets are one-way and each street leads from one intersection to ano ...
- 有向无环图(DAG)的最小路径覆盖(转)
DAG的最小路径覆盖 定义:在一个有向图中,找出最少的路径,使得这些路径经过了所有的点. 最小路径覆盖分为最小不相交路径覆盖和最小可相交路径覆盖. 最小不相交路径覆盖:每一条路径经过的顶点各不相同.如 ...
随机推荐
- 【PHP】保留两位小数并向上取整
问题: 一开始我想着数值*100然后向上取整然后再除以一百 $num = 1000 * 0.9634; echo $num; echo '</br>'; $res = ceil($num ...
- 手机访问pc网站自动跳转手机端网站PHP代码
$agent = $_SERVER['HTTP_USER_AGENT']; if(strpos($agent,"comFront") strpos($agent,"iPh ...
- 从浏览器渲染层面解析css3动效优化原理
引言 在h5开发中,我们经常会需要实现一些动效来让页面视觉效果更好,谈及动效便不可避免地会想到动效性能优化这个话题: 减少页面DOM操作,可以使用CSS实现的动效不多出一行js代码 使用绝对定位脱离让 ...
- Java面向对象系列(14)- 接口的定义与实现
接口 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范!约束和实现分离 接口就是规范,定义的是一组规则,体现了现实世界中"如果你是-则必须能-"的思想. ...
- web自动化:IE11运行Python+selenium程序
from selenium import webdriver # 运行此脚本前必须按要求修改注册表'''[HKEY_CURRENT_USER\Software\Microsoft\Internet E ...
- Gitee自动化部署python脚本
一.前期准备 1.1 安装环境 1.安装python3 2.打开命令行安装selenium pip install selenium 二.python代码 2.1 源码 #!/usr/bin/pyth ...
- P7115-[NOIP2020]移球游戏【构造】
正题 题目链接:https://www.luogu.com.cn/problem/P7115 题目大意 \(n+1\)个柱子,前面\(n\)个上面各有\(m\)个球,球有\(n\)种颜色,每种\(m\ ...
- AT3611-Tree MST【点分治,最小生成树】
正题 题目链接:https://www.luogu.com.cn/problem/AT3611 题目大意 给出\(n\)个点的一棵树. 现在有一张完全图,两个点之间的边权为\(w_x+w_y+dis( ...
- Maven----将手动下载的jar包以命令行的方式安装到本地MavenRepository中
1.情景再现:准备实现SprintBoot的热部署功能,因没有对应jar时,在Eclipse中mvn install 会报错: 报错信息: [INFO] --- spring-boot-maven-p ...
- 踩坑系列《八》解决Win10没有找到Hyper-v的错误
最近要安装docker,所以得开启Hyper属性面板,找了下,发现电脑上没有看到该属性. 在这之前,得先判断,你电脑是不是支持Hyper,打开cmd窗口,输入systeminfo 看看最下面Hyper ...