NOIP2018普及组模拟赛

向老师给的模拟赛,还没普及组难...

题目在洛谷团队里。

第一试三道水题,我46分钟就打完了,然后就AK了。

第二试一看,除了第二题要思考一段时间之外,还是比较水的,但是我得了Rank倒1,115分......

D1T1有个技巧,每次从堆中取出合并的时候顺便统计答案,相当于每一层的贡献分开来统计。

这个技巧来源于荷马史诗。

D2T2乍一看很难。答案不满足单调性所以不能二分。

因为边权在变,所以很难搞。同时这个也是突破口。

如果能够确定一个时刻,那么就最大生成树。

如果能确定一个生成树,那么可以发现边权和变化是一次函数。

生成树数量过多,不能枚举,但是时刻只有[0, 14400],考虑枚举时刻。

扫描二维码关注公众号,回复: 3306974 查看本文章

这样我们就要证明,最大的生成树所在时刻必须为整数。(证明在下面)

时间复杂度有点高,可能会超时。

进一步可以证明出,最大的生成树的所在时刻必定是某条边权最大的时刻ti

然后枚举ti求最大生成树,取最大值即可。

证明:

最大的生成树的所在时刻必定是某个生成树的最大时刻。

即证每个生成树的最大时刻必定是某个ti

每个生成树在两个ti之间的边权和是一个一次函数,最值在两端。

证毕。

然后我得了5分,理由是快读没写负数读入......

D2T3 一眼看上去是图论的奇淫技巧,然后发现只有几百个点,然后就想到了DP。

然后就写了个DP,得了10分,理由是最后输出的状态,一个变量错了。

总结:快读记得要处理负数。变量的意义最好用自己熟悉的,不熟悉的可以记下来。

猜你喜欢

转载自www.cnblogs.com/huyufeifei/p/9692817.html