POJ 2060 Taxi Cab Scheme DAG最小路径覆盖
来源:互联网 发布:睫毛增长液 知乎 编辑:程序博客网 时间:2024/06/06 19:50
题意:用出租车去接客人,已经每个客人的出发时间,出发地点和目的地,你的任务是用尽量少的出租车去送他们,使得每次能提前一分钟到达他所在的位置。注意,为了满足条件,要么这位客人是这辆出租车接送的第一个客人,要么在接送完上一个客人后,有足够的时间从上一个目的地开到这里。
分析:本题就是一个DAG的最小路径覆盖。假设从X点出发的出租车还可以到达Y,则连一条边X-Y,则就是求构图后的最小路径覆盖。
代码:
#pragma comment(linker,"/STACK:102400000,102400000")#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <math.h>#include <queue>#include <stack>#include <map>#include <set>using namespace std;typedef long long ll; //记得必要的时候改成无符号const int INF=1000000000;const int maxn=1005;const int maxm=1000005;struct Edgenode{ int to; int next;}edge[maxm];int head[maxn],cnt;void add(int x,int y){ edge[cnt].to=y; edge[cnt].next=head[x]; head[x]=cnt++;}void init(){ cnt=0; memset(head,-1,sizeof(head));}int n,m,v[maxn],pre[maxn];bool dfs(int x){ int y; for(int i=head[x];i!=-1;i=edge[i].next) { y=edge[i].to; if(!v[y]){ v[y]=1; if(!pre[y]||dfs(pre[y])){ pre[y]=x; return true; } } } return false;}int erfenpipei(){ int sum=0; memset(pre,0,sizeof(pre)); for(int i=1;i<=n;i++){ memset(v,0,sizeof(v)); if(dfs(i))sum++; } return sum;}struct q{ int a,b; int x1,y1,x2,y2;}a[maxn];int pd(q a,q b){ int s,t; if(a.a>b.a)return 0; if(a.a==b.a&&a.b>b.b)return 0; s=a.a*60+a.b+abs(a.x1-a.x2)+abs(a.y1-a.y2); s+=abs(a.x2-b.x1)+abs(a.y2-b.y1); t=b.a*60+b.b; if(s+1<=t)return 1; return 0;}int main(){ int T,i,j; scanf("%d",&T); while(T--){ scanf("%d",&n); init(); for(i=1;i<=n;i++) scanf("%d:%d %d %d %d %d",&a[i].a,&a[i].b,&a[i].x1,&a[i].y1,&a[i].x2,&a[i].y2); for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ if(i==j)continue; if(pd(a[i],a[j])) add(i,j); } } printf("%d\n",n-erfenpipei()); } return 0;}
0 0
- POJ 2060 Taxi Cab Scheme DAG最小路径覆盖
- LA 3126 - Taxi Cab Scheme【DAG最小路径覆盖】
- UVAlive3126 Taxi Cab Scheme(DAG的最小路径覆盖)
- UVALive3126[Taxi Cab Scheme] DAG最小路径覆盖模型
- POJ--2060[Taxi Cab Scheme] 最小路径覆盖
- POJ 2060 Taxi Cab Scheme (最小路径覆盖)
- POJ-2060 Taxi Cab Scheme 最小路径覆盖(匈牙利)
- POJ 2060 Taxi Cab Scheme(匈牙利—最小路径覆盖)
- Poj-2060 Taxi Cab Scheme 二分图最小路径覆盖
- poj 2060 Taxi Cab Scheme 最小路径覆盖
- poj 2060 Taxi Cab Scheme 最小路径覆盖
- POJ - 2060 Taxi Cab Scheme 二分图 最小路径覆盖
- POJ-2060-Taxi Cab Scheme-最小路径覆盖
- POJ 2060 Taxi Cab Scheme(最小路径覆盖)
- PKU2060 Taxi Cab Scheme - 最小路径覆盖
- POJ2060 Taxi Cab Scheme [最小路径覆盖]
- hdu1350 Taxi Cab Scheme (最小路径覆盖)
- poj2060 Taxi Cab Scheme 最小路径覆盖
- 黑马程序员-抽象类借口
- Android相对布局属性全集
- oracle备忘录(二)--基础知识基本语法
- uva10905
- Avoiding Cross-Site Scripting (XSS) Attacks With AntiXSS in MVC 4
- POJ 2060 Taxi Cab Scheme DAG最小路径覆盖
- android上传图片至服务器
- 作为菜鸟,我需要做的是:每天进步一点点
- get,put,post,delete含义与区别
- Centos 安装Apache软件
- android+servlet登录验证简单demo
- 黑马程序员-Java-this关键字
- 挣值项目管理
- LeetCode Linked List Cycle