POJ-2060 Taxi Cab Scheme 最小路径覆盖(匈牙利)
来源:互联网 发布:linux安装源码包 编辑:程序博客网 时间:2024/05/17 10:05
锻炼一下自己的邻接表建图能力。。。然后就是套模板。
虽然还是不知道为什么最小路径覆盖=点数-最大二分图匹配。
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <queue>#include <algorithm>#include <vector>#define maxn 555using namespace std;int link[maxn];bool visit[maxn];int t,n,m;struct //taxi的各项数据 {int starttime;//预约时间 int x1,x2;int y1,y2;int endtime;}taxi[555];struct//邻接表 {int v,next;}edge[maxn*maxn];int edgehead[maxn];bool dfs(int k)//搜索增广路 {for(int i=edgehead[k];i!=0;i=edge[i].next){int v=edge[i].v;if(!visit[v]){visit[v]=1; if(link[v]==-1||dfs(link[v])) { link[v]=k; return true;}}}return false;}int hungary()//匈牙利 {int num=0;memset(link,-1,sizeof(link));//初始化 for(int i=1;i<=n;i++){memset(visit,0,sizeof(visit));if(dfs(i))//有增广路 {num++;//匹配数++ }}return num;}int main(){int h,m;scanf("%d",&t);while(t--){memset(edgehead,0,sizeof(edgehead));//初始化 int s=1;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d:%d",&h,&m);//差点不机智的用字符串慢慢算。。 taxi[i].starttime=h*60+m;//预约时间,换算成分钟 scanf("%d%d%d%d",&taxi[i].x1,&taxi[i].y1,&taxi[i].x2,&taxi[i].y2);taxi[i].endtime=taxi[i].starttime+abs(taxi[i].x1-taxi[i].x2) + abs(taxi[i].y1-taxi[i].y2);//做完这个单的时间 }for(int i=1;i<=n;i++)//搜索可以继续的下一单,加入邻接表 {for(int j=i-1;j>0;j--){ if(taxi[i].starttime>=taxi[j].endtime+abs(taxi[i].x1-taxi[j].x2)+abs(taxi[i].y1-taxi[j].y2)+1) { edge[s].v =j; edge[s].next = edgehead[i]; edgehead[i]=s++; }}}int ans=0;ans=hungary();//二分匹配 printf("%d\n",n-ans);//最小路径覆盖=点-最大二分匹配 }return 0;}
0 0
- 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 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-最小路径覆盖
- PKU2060 Taxi Cab Scheme - 最小路径覆盖
- POJ2060 Taxi Cab Scheme [最小路径覆盖]
- hdu1350 Taxi Cab Scheme (最小路径覆盖)
- poj2060 Taxi Cab Scheme 最小路径覆盖
- HDU1350 Taxi Cab Scheme (最小路径覆盖)
- POJ2060 Taxi Cab Scheme(最小路径覆盖)
- UVAlive3126 Taxi Cab Scheme(DAG的最小路径覆盖)
- NPAPI插件开发详细记录:利用cmake生成插件工程
- 俄官员担心遭窃听弃用iPad 转用三星产品
- iPhone几种截屏的代码分享
- iOS 开发-理解Certificate、AppId和Provisioning Profile
- 马年步步高升
- POJ-2060 Taxi Cab Scheme 最小路径覆盖(匈牙利)
- 欧盟放弃对中国电信产品反倾销调查
- 中兴华为继续应诉欧盟无线网卡反倾销
- 第一课、Cocos2d-x 环境搭载
- 勇气
- 友元
- 图(有向图,无向图)的邻接矩阵表示C++实现(遍历,拓扑排序,最短路径,最小生成树) Implement of digraph and undigraph using adjacency matrix
- JSON 语法学习资料
- POJ-1422 Air Raid 最小路径覆盖模板题