题意:
      给你明天的出租车订单,订单中包含每个人的起点和终点坐标,还有时间,如果一辆出租车想接一个乘客必须在每个订单前1分钟到达,也就是小于等于time-1,问你完成所有订单要最少多少量出租车...

思路:

     典型的最小路径覆盖,对于最小路径覆盖,我们可以这么理解,最次的情况是N辆,而只要找到那么一组可以与其匹配,就是用一辆车的就从n里减去一辆,我们找到最大的这种匹配数量,也就是最大匹配,然后N-ans ,就行了...这个题目有个地方挺坑的,就是给了个提示,说出租车可能跑到后半夜,一开始我sb了,当时间大于半夜凌晨就更新成第二天的时间,结果wa了,想想也是,更新完以前拉不了的活可能拉了,后来直接把更新的这个去掉就ac了,ac的时候感觉很奇怪,是不是数据弱? 我感觉可以不更新时间,而是把23.01 01.02 变成23.01 25.02,因为说了订单是按时间顺序给的,可是在仔细看看题目,说的是第二天的订单,第二天是不是就不会出现第三天的任务? 如果会的话就会出现第四天的任务....fuck,不想了,就当他只有第二天的任务吧,所以无视那条提示就可以ac了.

#include<stdio.h>
#include<string.h>#define N_node 500 + 50
#define N_edge 300000

typedef struct
{int to ,next;
}STAR;typedef struct
{int t;int xs ,xe ,ys ,ye;int time;
}NODE;STAR E[N_edge];
NODE node[N_node];
int list[N_node] ,tot;
int mk_dfs[N_node] ,mk_gx[N_node];void add(int a ,int b)
{E[++tot].to = b;E[tot].next = list[a];list[a] = tot;
}int abss(int x)
{return x > 0 ? x : -x;
}int maxx(int x ,int y)
{return x > y ? x : y;
}bool ok(NODE a ,NODE b)
{int dis = abss(a.xe - b.xs) + abss(a.ye - b.ys);int t = a.t + a.time + dis + 1;//if(t >= 1440) t -= 1440;
   return t <= b.t;
}int Xyl_dfs(int s)
{for(int k = list[s] ;k ;k = E[k].next){int to = E[k].to;if(mk_dfs[to]) continue;mk_dfs[to] = 1;if(mk_gx[to] == -1 || Xyl_dfs(mk_gx[to])){mk_gx[to] = s;return 1;}}return 0;
}int main ()
{int t ,n ,i ,j; int h ,m;scanf("%d" ,&t);while(t--){scanf("%d" ,&n);for(i = 1 ;i <= n ;i ++){scanf("%d:%d %d %d %d %d" ,&h ,&m ,&node[i].xs ,&node[i].ys ,&node[i].xe ,&node[i].ye);node[i].t = h * 60 + m;node[i].time = abss(node[i].xs - node[i].xe) + abss(node[i].ys - node[i].ye);}memset(list ,0 ,sizeof(list));tot = 1;for(i = 1 ;i <= n ;i ++)for(j = i + 1 ;j <= n ;j ++){if(ok(node[i] ,node[j]))add(i ,j);}int ans = 0;memset(mk_gx ,255 ,sizeof(mk_gx));for(i = 1 ;i <= n ;i ++){memset(mk_dfs ,0 ,sizeof(mk_dfs));ans += Xyl_dfs(i);}printf("%d\n" ,n - ans);}return 0;
}



hdu1960 最小路径覆盖相关推荐

  1. 【网络流24题】最小路径覆盖问题

    [题目]1738: 最小路径覆盖问题 [题解]网络流 关于输出路径,因为即使有反向弧经过左侧点也一定会改变左侧点的去向,若没连向右侧就会被更新到0,所以不用在意. mark记录有入度的右侧点,然后从没 ...

  2. 最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)

    在讲述这两个算法之前,首先有几个概念需要明白: 二分图:  二分图又称二部图,是图论中的一种特殊模型.设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边( ...

  3. 有向图最小路径覆盖方法浅析、证明 //hdu 3861

    路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联. 对于一个有向无环图怎么求最小路径覆盖? 先构造二分图: 对于原图,先拆点,吧每个点i拆成ii,iii. ...

  4. HDU4160(最小路径覆盖问题)

    题意:当满足条件wi<wj,hi<hl和li<lj时,求解通过优化嵌套给定的娃娃可以获得的最外层洋娃娃的最小数量. 思路:如果嵌套的娃娃越多,则剩下的娃娃就越少,意味着单独出来的娃娃 ...

  5. 最大流 ---- 最小路径覆盖 ---- P2765魔术球问题(网络流24题)

    题目链接 解题思路: 这题题目看起来根本不像网络流但是确实用网络流做的 这个题目有两个限制 每个柱子上面的球相邻两个的和必须是平方数 球的编号必须是连续的 首先我们只考虑第一个条件的话,我们怎么转化成 ...

  6. 二分图专题系列各大知识点总结(匈牙利,染色法,最大独立集,最小点覆盖,最小路径覆盖)

    本文概论 二分图的判断方法:图中不存在奇数环----->染色法判断二分图不存在矛盾 二分图: 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i, ...

  7. 流网络的最小割问题c语言,「网络流24题」最小路径覆盖问题

    Description 问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任 ...

  8. 【网络流24题】D、魔术球问题(有向无环图的最小路径覆盖、思维)

    D.魔术球问题(有向无环图的最小路径覆盖.思维)[省选/NOI- ] P2765 魔术球问题 [问题分析] 枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决. [ ...

  9. 【网络流24题】解题报告:C、最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)

    C.最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)[省选/NOI- ] 拆点最大流 [问题分析] 有向无环图最小路径覆盖,可以转化成二分图最大匹配问题,从而用最大流解决. [建模方法] 构造二分 ...

最新文章

  1. 科沃斯扫地机器人哪个型号最实用_科沃斯扫地机器人哪款好?
  2. 调试Linux内核操作指南(withing kgdb)
  3. 网络编程学习笔记(freeaddrinfo函数)
  4. gdi 编程c语言pdf,二、Windows编程GDI—TextOut细节
  5. 概率软逻辑(PSL,Probabilistic soft logic)通用(可处理中文)版本
  6. Beta阶段第四次Scrum Meeting
  7. 流程图软件,visio,安装下载教程
  8. Ubuntu 安装 OpenCV(亲测有效)
  9. 深入解析J.U.C并发包(二)——AtomicInteger类
  10. java实验检查危险品代码_实验报告题目
  11. 好听的女孩名字2225个 懿婕、馨媛、雨熙、若涵、馨瑜、瑾涵、羽欣、琪悦、逸菲、馨瑜、雨婷、昕妤、婉婷、梦琪、馨月、佳瑜、晓琦、婷瑛、诗琪、瑾瑜、艺琳、雨婷、欣怡、诗雨、佳琪、悦涵、昕瑶、蓓佳、诗萌、
  12. Polish calculation
  13. China Mobile announces acquisition of China Railway Communication, unveiling industry reshuffle
  14. Bootstrap4 图片形状——圆形实现
  15. Gensim加载GloVe提供的词向量的诸多Bug之终极解决
  16. Redis学习之incr命令
  17. 文献记录(part109)--Self-Representation Based Unsupervised Exemplar Selection in a Union of Subspaces
  18. C/C++:实现象棋游戏
  19. 三种内存测试软件的使用说明
  20. 如何在计算机自动开机时选择用户,bios如何设置电脑定时自动开机/关机-bios设置电脑定时自动开机/关机的饭方法 - 河东软件园...

热门文章

  1. linux服务器centos系统apache路径不区分大小写的解决办法(适用WDCP面板)
  2. 第4章 类型基础 -- 4.1 所有类型都从System.Object派生
  3. android 获取应用的当前版本号获取当前android系统的版本号
  4. JPA扩展(自定义sql)
  5. BZOJ1452 [JSOI2009]Count 树状数组
  6. 【转载】基于AFNetWorking3.0的图片缓存分析
  7. jQuery 分类导航菜单条点击变色
  8. HDU 1236 ( 排名 )
  9. 高维、相依和不完全数据的统计分析(二)
  10. Python运维开发基础01-语法基础【转】