码迷,mamicode.com
首页 > 其他好文 > 详细

P1081 开车旅行

时间:2018-08-01 12:03:16      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:有序   class   使用   旅行   tps   起点   超时   才有   固定   

P1081 开车旅行

排序优化+倍增

其实这道题一开始是一点也没有头绪,知道有高人指点了一下。说并不需要拘束于出发点和路径长度,也就是问题1.2。不过一个是固定路径长度的询问,另一个是给定起点和路径长度的询问。

所以问题一和问题二是可以使用一个函数解决的,而且对于一个城市来说,在不考虑路程的情况下,路线是一定的。

然后我们就可以从遍历图变成枚举终点然后判断路程是否合法。

然后为了加速就可以使用倍增处理

对于每个城市,我们需要找他的最近点和次近点。O(N^2)会超时,这时候我们就需要优化可以考虑双向链表进行优化。

我们先按海拔进行排序,然后将标号为1的点拿出来进行处理,显然,只有在链表中的左右相邻的两个的城市(一个方向)才有可能是满足条件的点

然后再将处理完最近和次近的点在链表中删除(因为路径方向是有序的),这时候标号为2的点就成了标号为1的点,这样就可以了。

P1081 开车旅行

标签:有序   class   使用   旅行   tps   起点   超时   才有   固定   

原文地址:https://www.cnblogs.com/Lance1ot/p/9399245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!