10.10日noip多校联考总结

10.10日noip多校联考总结

T1

感觉就是个dij再多记录一个换乘次数然后就像普通dij一样跑就行了。
但是必须得将换乘次数放进dis数组中当成一个状态记录下来,不能只记录在堆中,不然做法会假。

T2

发现m=0的部分分就是用一个数据结构维护区间最大子段和。
m=1/2 就是同时维护一个最大值与次大值,求max。
对于整个问题进行维护,不断求最大值。

T3

考场上写了一个浮点数快速幂,对于取模操作直接减去下取整的结果。
正解其实是对于询问变成一个 \(i=\sqrt a\) 的复数类,直接跑复数快速幂,求出实部就可以得到答案了。
但在这题不能用c++STL中自带的complex复数类,因为STL中的complex\(i=\sqrt -1\)的虚部,但需要实现的并不是这个。

T4

考场上打了一个部分分的做法,没有想明白它是如何判断位于哪个位置的,以及它贪心的移动轨迹。
其实只需要对每个状态记录一下,跑bfs,再根据它当前的位置进行剪枝。

posted @ 2024-10-10 22:33  Z_AuTwT  阅读(3)  评论(0编辑  收藏  举报