2022.06.09 NOI模拟赛总结
1.时间安排
7:30~7:45 看题面
T1: 树上问题,子树异或,可能要用到一些数据结构。有随机生成树这档分,说明可能和树高有关。有30分 \(n^2\) 乱搞。
T2:多项式,有10分状压,可以试试推 \(n^3\) 的dp。
T3:树上问题,似乎不好转化为常见的数据结构题讨论,而且查的是全局路径最大,不是很好做。有30分乱搞复杂度。
7:45~8:30
先写了T1的 \(n^2\) ,测下发样例的时候发现询问并不是小于5000的,有点疑惑是不是发错数据了。
带着疑惑去打了个表,发现答案变化是有循环节的,而且似乎总是2的整次幂,进一步发现是大于等于树的最深深度的第一个2的整次幂。
虽然不会证,但是按照这个规律测了一下下发样例答案对了,就认为这个结论是对的。
进一步想到随机树高期望是 \(logn\) ,于是设置了一个阀值去跑第二个下发样例果然是对的(还好第二个下发样例是随机树),可以拿60分。
(然而,没有注意到数据范围的 \(t>=0\),没有特判初始状态……埋下伏笔)
8:30~9:00
艰难打出来T2的状压,样例没问题。
思考dp没什么结果,先写T3。
9:00~10:00
本来以为可以 \(\frac{n^4}{w}\) 乱搞,结果写着写着变成了 \(\frac{n^5}{w}\) ,不过好在是卡不满上界,构造了个菊花也能跑动,就不管了。
一开始想错了,觉得可以用lct维护路径加和全局查,发现那样子会算重,如果硬要区分需要用bitset复杂度更高了,没什么好想法,弃了。
10:00~10:30
想了一个T2的dp,枚举前 \(i-1\) 个点要和第 \(i\) 个点链接的度数。打完后答案不对,思考一下树的形态并没有考虑全,没什么好想法,弃了。
10:30~12:00
给T1的暴力转移打了个表出来,发现是有规律的(而且打出来的系数矩阵似乎挺好看?),似乎叫谢尔宾斯基三角形。
现在预处理的复杂度是 \(O(n^2)\),而查询是 \(O(1)\)的。吸取以前考试的经验,思考可不可以用什么方法平衡复杂度,做到都是 \(O(nlogn)\) 或 \(O(n\sqrt n)\)。
想到似乎可以倍增,预处理出来2的整次幂的转移系数,每次用2的整次幂去跳到要查询的时间。
但是似乎不可做,转移系数没问题,但是被转移的状态并不是初始状态,需要同步更新,而更新的复杂度不可避免是 \(O(n)\) 。
想了一些奇怪的方法,包括meet in middle预处理一半的状态拼起来等等,都不能解决问题。
然后就开摆了……
result:
T1: 0 T2: 10 T3: 30
(T1因为询问0的存在没有特判光荣爆0(为什么下发大样例里面什么特殊情况都没有……),加个特判就60分了……)。

浙公网安备 33010602011771号