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\times 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方面联想。