向老师给的模拟赛,还没普及组难...
题目在洛谷团队里。
第一试三道水题,我46分钟就打完了,然后就AK了。
第二试一看,除了第二题要思考一段时间之外,还是比较水的,但是我得了Rank倒1,115分......
D1T1有个技巧,每次从堆中取出合并的时候顺便统计答案,相当于每一层的贡献分开来统计。
这个技巧来源于荷马史诗。
D2T2乍一看很难。答案不满足单调性所以不能二分。
因为边权在变,所以很难搞。同时这个也是突破口。
如果能够确定一个时刻,那么就最大生成树。
如果能确定一个生成树,那么可以发现边权和变化是一次函数。
生成树数量过多,不能枚举,但是时刻只有[0, 14400],考虑枚举时刻。
这样我们就要证明,最大的生成树所在时刻必须为整数。(证明在下面)
时间复杂度有点高,可能会超时。
进一步可以证明出,最大的生成树的所在时刻必定是某条边权最大的时刻ti
然后枚举ti求最大生成树,取最大值即可。
证明:
最大的生成树的所在时刻必定是某个生成树的最大时刻。
即证每个生成树的最大时刻必定是某个ti
每个生成树在两个ti之间的边权和是一个一次函数,最值在两端。
证毕。
然后我得了5分,理由是快读没写负数读入......
D2T3 一眼看上去是图论的奇技淫巧,然后发现只有几百个点,然后就想到了DP。
然后就写了个DP,得了10分,理由是最后输出的状态,一个变量错了。
总结:快读记得要处理负数。变量的意义最好用自己熟悉的,不熟悉的可以记下来。