P1081 开车旅行
Posted lance1ot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1081 开车旅行相关的知识,希望对你有一定的参考价值。
排序优化+倍增
其实这道题一开始是一点也没有头绪,知道有高人指点了一下。说并不需要拘束于出发点和路径长度,也就是问题1.2。不过一个是固定路径长度的询问,另一个是给定起点和路径长度的询问。
所以问题一和问题二是可以使用一个函数解决的,而且对于一个城市来说,在不考虑路程的情况下,路线是一定的。
然后我们就可以从遍历图变成枚举终点然后判断路程是否合法。
然后为了加速就可以使用倍增处理
对于每个城市,我们需要找他的最近点和次近点。O(N^2)会超时,这时候我们就需要优化可以考虑双向链表进行优化。
我们先按海拔进行排序,然后将标号为1的点拿出来进行处理,显然,只有在链表中的左右相邻的两个的城市(一个方向)才有可能是满足条件的点
然后再将处理完最近和次近的点在链表中删除(因为路径方向是有序的),这时候标号为2的点就成了标号为1的点,这样就可以了。
以上是关于P1081 开车旅行的主要内容,如果未能解决你的问题,请参考以下文章