NOI模拟赛 6.20

赛时时间安排

8:10-8:30 读题

第一感觉:

T1:奇怪的图论,暂时没联想到图论相关算法

T2:一看就是整体二分+四边形不等式优化

T3:计算几何/分治/乱搞

8:30-9:30 肝T2

容易想到整体二分计算贡献的过程需要用类似莫队的结构维护,这种套路在 [ICPC2017 WF]Money for Nothing 中见过,由于在产生贡献的过程中区间端点总是一位一位移动,这种类莫队的转移的转移次数是均摊(O(1))的,转移时需要用树状数组维护。

这道题与以前那道不同之处在于(f[i])必须由之前的(f[j](j<i))的值转移而来,思索了一段时间发现只需要在最外层套一个CDQ保证先计算前面。

时间复杂度(O(n log^3 n)),算了算达到了(3 imes 10^9),但由于这题5s且分治的常数很小应该可以过就打了。

9:30-10:20 T3

打了T3的50pts,优化了50pts,又骗了骗后50pts的分

10:20-12:20 T1

花了约20分钟想了T1的第一档分,又花了20分钟码了出来。

之后就一直在想T1,联想到了网络流,发现根本没办法处理;联想到了需要一个类似圆方树的结构,可是不太会,自闭了。

12:20-13:00 检查

感觉把能打的都打完了,T1、T3也很难有什么进展了,就又拍了拍T2,检查了检查每道题。

赛后总结反思

总的来说今天打的还不错,至少把能实现的分都拿到了。

T3又需要借助Hash,300iq的两场模拟赛都需要借助hash来优化复杂度,以后遇到这种需要找某个值的情况可以往Hash方面联想。

原文地址:https://www.cnblogs.com/Robert-JYH/p/14913869.html