poj2060Taxi Cab Scheme(最小路径覆盖)
来源:互联网 发布:org.apache jar包 编辑:程序博客网 时间:2024/05/16 01:46
题目链接:
http://poj.org/problem?id=2060
思路:
要求最少派几辆车。那么我们就可以先把那些可以接上的车辆订单都建边,建成一个有向无环图,然后我们可以利用二分图最大匹配计算出最大匹配p,然后就可以算出需要的车辆为n-p。
代码:
#include<stdio.h>#include<string.h>#include<algorithm>#include<stdlib.h>using namespace std;const int maxn= 505;int vis[maxn],head[maxn],tot,match[maxn];struct edge{int to,from,next;}e[maxn*maxn];struct node{int hh,mm,a,b,c,d;}p[maxn];void add(int a,int b){e[tot].to=b;e[tot].next=head[a];head[a]=tot++;}bool cmp(node x,node y){if(x.hh==y.hh)return x.mm<y.mm;return x.hh<y.hh;}void init(){tot=0;memset(vis,0,sizeof(vis));memset(head,-1,sizeof(head));memset(match,-1,sizeof(match));}bool dfs(int x){//printf("%d?\n",x);for(int i=head[x];i!=-1;i=e[i].next){if(!vis[e[i].to]){vis[e[i].to]=1;if(match[e[i].to]==-1||dfs(match[e[i].to])){match[e[i].to]=x;return true;}}}return false;}int main(){int T,i,j,k,n,m;scanf("%d",&T);while(T--){init();scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d:%d%d%d%d%d",&p[i].hh,&p[i].mm,&p[i].a,&p[i].b,&p[i].c,&p[i].d);}sort(p+1,p+1+n,cmp);for(i=1;i<=n;i++){for(j=i+1;j<=n;j++){int a,b,c,d,e,f;a=p[i].a;b=p[i].b;c=p[i].c;d=p[i].d;e=p[j].a;f=p[j].b;int xx=abs(a-c)+abs(b-d)+abs(c-e)+abs(d-f);int yy=(p[j].hh-p[i].hh)*60+p[j].mm-p[i].mm;if(xx<yy){add(i,j);}}}int ans=0;for(i=1;i<=n;i++){memset(vis,0,sizeof(vis));if(dfs(i))ans++;}printf("%d\n",n-ans);}}
0 0
- poj2060Taxi Cab Scheme(最小路径覆盖)
- poj2060Taxi Cab Scheme_最小覆盖路径问题
- POJ2060 Taxi Cab Scheme(最小路径覆盖)
- POJ-2060 Taxi Cab Scheme 最小路径覆盖(匈牙利)
- UVAlive3126 Taxi Cab Scheme(DAG的最小路径覆盖)
- POJ 2060 Taxi Cab Scheme(最小路径覆盖)
- poj2060——Taxi Cab Scheme(最小路径覆盖)
- PKU2060 Taxi Cab Scheme - 最小路径覆盖
- POJ2060 Taxi Cab Scheme [最小路径覆盖]
- hdu1350 Taxi Cab Scheme (最小路径覆盖)
- hdu1350Taxi Cab Scheme (最小路径覆盖)
- poj2060 Taxi Cab Scheme 最小路径覆盖
- HDU1350 Taxi Cab Scheme (最小路径覆盖)
- POJ_2060_Taxi Cab Scheme【最小路径覆盖】
- POJ--2060[Taxi Cab Scheme] 最小路径覆盖
- POJ 2060 Taxi Cab Scheme (最小路径覆盖)
- hdu_1960/1350 Taxi Cab Scheme 最小路径覆盖
- POJ 2060 Taxi Cab Scheme(匈牙利—最小路径覆盖)
- PHP Cookie本地存储
- 求解单源最短路径:Dijkstara算法典型示例
- Spark Transformation —— subtract
- UVA 11609 Teams
- HDU2899
- poj2060Taxi Cab Scheme(最小路径覆盖)
- hdu3980Paint Chain+SG博弈
- 机房收费系统总结
- MVP的工作原理
- Java设计模式-单例模式
- 找点题做(hdu分类)
- cocos2dx源码阅读之万能的Value
- SQL四中连接(左外连接、右外连接、内连接、全连接)
- hdu 1006