20250610模拟 总结
T1 P5472 [NOI2019] 斗主地
写了前四个点的dp和矩阵快速幂。
正解,观察到任意时刻牌堆从上到下的期望总是二次函数(若type=1则为一次函数),每次求出操作后的前3项并求解通项,并根据其继续递推直到得到最终的通向,然后代入计算。
T2 P5471 [NOI2019] 弹跳
写了前18个点。
正解,dijkstra的过程维护矩形而不是点,每拿到一个矩形,在矩形中找点建立转移,并立即将点删掉。找点的过程使用二维数据结构维护(比如线段树套set),这样每个点被访问次数为log(因为外层套了个线段树),时间复杂度均摊正确,为双log。
本质上考察了dijkstra的深刻理解,即:心中有边,需要哪个点就拿出来用,即可。而无需建出来图。
T3
P4769 [NOI2018] 冒泡排序
观察一些性质并利用性质写了一个状压,过了11个点。
正解,先考虑没有字典序的限制,相当于不允许出现长度为3的递减序列,即:序列最多划分为2个上升序列。先考虑dp,可以设计出2维dp,然后观察转移发现等效于“平面内只能向右或向右上走”的,走几行几列的方案数,于是卡特兰数。再借助数位dp的思想,走到一个地方,计算前缀相同,在这个位置比给出排列大的个数,预处理组合数代入卡特兰数公式求解。
总结:40+72+44
分数还可以,基本部分分都拿到了,但是感觉T1还是应该观察出来这个性质的,(都把暴力写好了,为啥不跑一个看看呢~~~)。

浙公网安备 33010602011771号