CF20C 暴力题解(

大家好,我是hpz,我非常喜欢暴力,所以我就用暴力通过了此题。

这一题裸暴力dfs想都别想,所以必须大力优化,本篇题解主要就是讲优化。

  1. 记忆化。

这是比较常见的优化。

我们在dfs函数中,一般需要有n\text{n}(当前节点编号),和w\text{w}(目前走过的路径权值),我们可以定义一个一维数组f\text{f},其中fif_{i}表示走到节点i\text{i}目前所需要花费的时间。

那么在dfs过程中,我们可以剪个枝,如果fnwf_n \leq w就直接跳出。

  1. 如果当前的w\text{w}已经比我们的当前答案ans\text{ans}要大,直接跳出。

  2. 玄学优化

这一点要实现得用vector\text{vector}存图。

我们在每条边存完以后,对于每一个点,从这个点出发的所有边按照节点编号排序。

至于为什么……就是防止CF的毒瘤Hacker给了一大堆边,但其实有1n1-n的边,而且就是最短路径的情况。

然后就可以通过了。

code

赞赏