2023.1.16 省选模拟赛总结&省选回归安排
饱受0.6坤月的whk折磨后,终于应付过了会考,现在回到了OI上。
1.时间安排
8:00~9:30
先看了下题目,zr经典题目背景,不出意外是三个DP题。
T1的 \(n^4\) DP 是 easy 的,枚举区间计算前后缀值即可,稍微一调就过了样例。
下一档直接要求复杂度降到 \(n^2log\) 左右,暂时没思路,不过有一档特殊分是只有 \(log\) 种区间 gcd 的取值,启发我可以从枚举 gcd 入手。
直接计算每个位置被包含多少次是难的,考虑正难则反,用总数-没被包含的数量。
考虑设 \(f_i\) 表示端点小于等于 \(i\) 的区间数量,满足这些区间的 gcd 是当前枚举的值,同样维护后缀 \(g_i\),这样总数是 \(f_n\) 或 \(g_1\),位置 \(i\) 不被包含的就是 \(f_{i-1}*g_{i+1}\)。
dp 的转移因为是区间加区间求和可以用线段树,但是调了很久没调出来,决定暂时先放着。
9:30~10:20
T2是博弈背景的 DP ,不太擅长,T3是关于树的拓扑序的 DP,有40分的状压 DP,就先写了这个分。
因为自己目害导致看错输入格式耽误一会,好在 DP 部分没出错。
看到下一档是 \(n=50\) 想着会不会合法状态很少,但是打出来表发现状态几乎跑满,所以 \(n=50\) 大概不是给指数级算法留的,就先弃了。
10:20~11:00
T2 的 \(n,m\leq 4\) 可以按照定义模拟博弈过程,用记忆化搜 SG 函数,造的小样例是没啥问题,可以过 10 分。
想了一会 \(n,m\leq 300\) 的,苦于博弈论没怎么学完全不知道怎么下手,放弃。
11:00~12:50
感觉 T3 做出来可能性不大,决定冲 T1。
又调了很久发现是自己初值没考虑 0 和 \(n+1\) 位置,把特殊分写完了,造数据没啥问题。
之后想 \(n=2000\) 的做法,想着在刚才枚举 gcd 取值的做法上拓展,打表发现本质不同的 gcd 区间很少,仔细分析最多是 \(nlog\) 种区间,于是可以用 \(n^2log^2\) 复杂度的做法过掉。
常数巨大,想把线段树改树状数组,但是需要开4个常数不减反增,只好想办法优化掉其他地方的常数,好在最后卡进去了。
调完也就快结束了,其他题也没时间想了。
result:
T1:70 T2:10 T3:40
2.反思
T1.
和正解很接近,我的 \(O(n^2log^2)\) 做法多了一个更新 DP 数组和计算答案的 \(O(n)\) 枚举,正解是提取出值相同的区间一起操作,总区间数是 \(O(nlog)\) 所以复杂度就变成了 \(O(nlog^2)\)。
如果时间再多一些也许能A掉,前面卡在特殊分做法的时间太多了。
T2.
%%%Larunatrecy 场切
没学过的博弈模型。
翻棋子模型:有一排区分正反面棋子,制定一个规则(形如一次连续翻 \(k\) 个),保证最后一个翻的必须是反面朝上,求局面 SG 值。
根据数学归纳法(万物皆可归纳)可以证明此局面可以把所有反面朝上棋子独立出来考虑求 SG 值,他们的异或就是当前局面的 SG 值。
不太会证,Larunatrecy 说记住这个 trick 就行,狂 % 。
然后根据打表可以发现一个此题中一个白色棋子 \((x, y)\) 的 SG 值是 \(lowbit(max(x, y))\)。
于是就变成了求矩形并 \(lowbit\) 的异或值,Larunatrecy 是直接用 \(O(logn)\) 求连续 \(lowbit\) 异或值的技巧写的 \(O(nlog^2n)\) , 我写的是题解的 \(O(nlogV)\) 做法,实际运行情况差别不大。
T3.
%%%Larunatrecy 场切
80分和正解都没有弄明白,待补。
不过看到 80分 有一种做法是枚举一对逆序对看他出现在多少合法序列中,这个思路挺有启发。
3.总结
DP 能力还是差太远,尤其是计数,今天考了两个计数都不是太会做,还是要多练计数技巧。
博弈可以适当开个坑,学点常见的 trick。
关于 gcd 学到新性质,固定端点后满足单调性且取值种类是 \(O(logV)\),不难想的。
今天正难则反运用很好,补集思想还是很重要的。
4.关于之后的计划
DP 肯定还是作为重点,特别是计数 DP,树形DP 和概率期望 DP,在 LG 上找到了队爷的训练题单,跟着队爷的训练计划做一做,改善劣势区间。模拟费用流的题也多留意一些,感觉模拟费用流最近很火。
构造也要适当练多一点,主要以 CF 和 AT 为主。
数学的话再多学学反演技巧和组合技巧,太难的东西(比如类欧)就放弃了吧。
图论还是连通性的东西,点边双和圆方树,网络流建模也适当做一点。
DS的话主要是练习根号数据结构,多做些lxl题,点分治的东西也不熟练。
字符串相关主要是 SAM ,但是精力有限大工程不准备做了。
有时间找一些 CF 上的脑洞交互做一做,练练思维。
近期大概就是这样。