hdu1960 最小路径覆盖
题意:
给你明天的出租车订单,订单中包含每个人的起点和终点坐标,还有时间,如果一辆出租车想接一个乘客必须在每个订单前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 最小路径覆盖相关推荐
- 【网络流24题】最小路径覆盖问题
[题目]1738: 最小路径覆盖问题 [题解]网络流 关于输出路径,因为即使有反向弧经过左侧点也一定会改变左侧点的去向,若没连向右侧就会被更新到0,所以不用在意. mark记录有入度的右侧点,然后从没 ...
- 最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
在讲述这两个算法之前,首先有几个概念需要明白: 二分图: 二分图又称二部图,是图论中的一种特殊模型.设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边( ...
- 有向图最小路径覆盖方法浅析、证明 //hdu 3861
路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联. 对于一个有向无环图怎么求最小路径覆盖? 先构造二分图: 对于原图,先拆点,吧每个点i拆成ii,iii. ...
- HDU4160(最小路径覆盖问题)
题意:当满足条件wi<wj,hi<hl和li<lj时,求解通过优化嵌套给定的娃娃可以获得的最外层洋娃娃的最小数量. 思路:如果嵌套的娃娃越多,则剩下的娃娃就越少,意味着单独出来的娃娃 ...
- 最大流 ---- 最小路径覆盖 ---- P2765魔术球问题(网络流24题)
题目链接 解题思路: 这题题目看起来根本不像网络流但是确实用网络流做的 这个题目有两个限制 每个柱子上面的球相邻两个的和必须是平方数 球的编号必须是连续的 首先我们只考虑第一个条件的话,我们怎么转化成 ...
- 二分图专题系列各大知识点总结(匈牙利,染色法,最大独立集,最小点覆盖,最小路径覆盖)
本文概论 二分图的判断方法:图中不存在奇数环----->染色法判断二分图不存在矛盾 二分图: 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i, ...
- 流网络的最小割问题c语言,「网络流24题」最小路径覆盖问题
Description 问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任 ...
- 【网络流24题】D、魔术球问题(有向无环图的最小路径覆盖、思维)
D.魔术球问题(有向无环图的最小路径覆盖.思维)[省选/NOI- ] P2765 魔术球问题 [问题分析] 枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决. [ ...
- 【网络流24题】解题报告:C、最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)
C.最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)[省选/NOI- ] 拆点最大流 [问题分析] 有向无环图最小路径覆盖,可以转化成二分图最大匹配问题,从而用最大流解决. [建模方法] 构造二分 ...
最新文章
- 科沃斯扫地机器人哪个型号最实用_科沃斯扫地机器人哪款好?
- 调试Linux内核操作指南(withing kgdb)
- 网络编程学习笔记(freeaddrinfo函数)
- gdi 编程c语言pdf,二、Windows编程GDI—TextOut细节
- 概率软逻辑(PSL,Probabilistic soft logic)通用(可处理中文)版本
- Beta阶段第四次Scrum Meeting
- 流程图软件,visio,安装下载教程
- Ubuntu 安装 OpenCV(亲测有效)
- 深入解析J.U.C并发包(二)——AtomicInteger类
- java实验检查危险品代码_实验报告题目
- 好听的女孩名字2225个 懿婕、馨媛、雨熙、若涵、馨瑜、瑾涵、羽欣、琪悦、逸菲、馨瑜、雨婷、昕妤、婉婷、梦琪、馨月、佳瑜、晓琦、婷瑛、诗琪、瑾瑜、艺琳、雨婷、欣怡、诗雨、佳琪、悦涵、昕瑶、蓓佳、诗萌、
- Polish calculation
- China Mobile announces acquisition of China Railway Communication, unveiling industry reshuffle
- Bootstrap4 图片形状——圆形实现
- Gensim加载GloVe提供的词向量的诸多Bug之终极解决
- Redis学习之incr命令
- 文献记录(part109)--Self-Representation Based Unsupervised Exemplar Selection in a Union of Subspaces
- C/C++:实现象棋游戏
- 三种内存测试软件的使用说明
- 如何在计算机自动开机时选择用户,bios如何设置电脑定时自动开机/关机-bios设置电脑定时自动开机/关机的饭方法 - 河东软件园...
热门文章
- linux服务器centos系统apache路径不区分大小写的解决办法(适用WDCP面板)
- 第4章 类型基础 -- 4.1 所有类型都从System.Object派生
- android 获取应用的当前版本号获取当前android系统的版本号
- JPA扩展(自定义sql)
- BZOJ1452 [JSOI2009]Count 树状数组
- 【转载】基于AFNetWorking3.0的图片缓存分析
- jQuery 分类导航菜单条点击变色
- HDU 1236 ( 排名 )
- 高维、相依和不完全数据的统计分析(二)
- Python运维开发基础01-语法基础【转】