求助,2015原题,目前60分,实在找不出bug了,求大佬帮忙qwq

学术版

我95,第13个点就是TLE,死活过不去。。。
by logwzc @ 2019-09-12 23:31:10


好,把dfs改成bfs,又加了一大堆剪枝优化以后它正好2s过题
by logwzc @ 2019-09-12 23:39:18


又卡了一波常,它现在1.77s
by logwzc @ 2019-09-12 23:51:02


你的问题在于计算每条边的经过次数
by logwzc @ 2019-09-13 00:05:32


就是你考虑树上差分的过程,一条边的实际经过次数应该等于它深度较深的端点的pas值,但是你的代码并没有考虑边的经过次数到底由哪个端点转移而来
by logwzc @ 2019-09-13 00:08:53


所以实际上你并不用遍历整个边集数组,你只用枚举这个较深的端点是哪个就行了
by logwzc @ 2019-09-13 00:12:13


@[logwzc](/space/show?uid=72598) 我使用了ed[i] .to...
by Revenger666 @ 2019-09-13 10:08:16


@[logwzc](/space/show?uid=72598) 哦,深度较深 那我的哪个函数应该改一改
by Revenger666 @ 2019-09-13 10:10:19


@[logwzc](/space/show?uid=72598) 现在也95了。。
by Revenger666 @ 2019-09-13 13:49:05


首先你二分的右端点可以优化成maxb,然后你可以dfs改bfs,这样bfs出来的队列你把它倒着枚举就相当于按拓扑序枚举,一旦枚举到一条合法的边就return true,然后这样就可以卡过。如果你不太明白可以看我[代码](https://www.luogu.org/record/23890305)
by logwzc @ 2019-09-13 15:26:15


| 下一页