2023.2.9 省选模拟赛总结
1.时间安排
7:30~8:30
T1贪心/构造题,T2计数DP,T3博弈论背景的计数
T2这种删除数且任意时刻的序列不一定连续很自然联想到区间DP维护,设 \((l,r,x)\) 表示 \([l,r]\) 内 \(x\) 最后胜出的概率,在DP过程中发现还需要加入一维 \(p\) 表示此前已经做过了 \(p\) 次操作,来适应题目每次随机选择的要求,这样就是四维DP,转移 \(O(n^3)\),总复杂度 \(O(n^7)\)。
本来准备值当写暴力分了,结果写完发现能过 \(n=60\),可以拿36分。
之后打表 \(a_i=1\) 的部分分,因为是取模后的分数所以打了个 \(100*100\) 的取模分数表,没什么好方法只能一个一个找,最后还是发现规律了,系数是形如 \(\prod_{i}\frac{2*i-1}{i}\) 的表达式,拿到49分。
8:30~10:00
T1 \(n=m\)可以直接特判输出0,考虑题面那个式子以及 \(c\) 的范围是在 \(n\) 以内的,所以考虑从后往前贪心,尽可能让后面更大,也就是能让后面交换就交换。
感觉构造不出什么反例,只发了很小的样例,只能相信这个结论正确,拿到18分。
然后把这个过程直接放到 \(m\leq20\) 的没有特殊性质的数据上,状压枚举哪些位置做这样的交换。
(但是这个结论还是有问题的, \(m\leq20\)的档并没有通过。)
感觉这个东西很像图上的路径翻转,但是没有细想。
10:00~12:00
T3的 \(m=1\) 就是nim博弈,那么问题就变成了 \(n\) 个数每个数有若干种取值异或和为0的方案数,fwt即可,24分。
之后想先写暴力,但是太复杂了,暴力太难写,写到11:30左右放弃了。
之后继续想T2怎么优化,但是我甚至做不到优化这个7次方的DP(当然不考虑ntt)。
result:
T1:18 T2:49 T3:9(数据配错了,理论24)
2.总结
T1
实际上这个图是个基环树森林,贪心也确实要从后往前尽量让后面更大。
不过这题存在性质:一条链翻转后不可能再被翻转回去,证明考虑链的方向翻转后从大指向小,再次翻转不如不翻转。
那么每次从需要被翻转的点出发暴力搜索没有被访问过的点,找到需要翻转的链,与总操作次数比较一下看是否可以操作。
如果当前点对应两个值相同,那我们不翻转,但不打上不允许之后的点翻转链经过此点的标记,其他的点就需要打上这个标记来保证时间复杂度。
复杂度均摊线性。
细节挺少,场上如果时间分配合理写应该能过。
T2
首先考虑 \(n^5\) DP可以不直接DP答案而是先DP方案的价值和,类似求期望的过程,因为每个方案的概率相等,所以可以先求出所有方案的价值和再乘上概率就可以得到期望,这道题也可以看做第 \(i\) 个人的期望,因为随机的过程保证了每种方案出现的概率都是 \(\frac{1}{(n-1)!}\)。
这样子就可以做 \(n^5\) 了,预处理一些求和可以做到 \(O(n^4)\),可以通过 \(n=150\) 的数据。
考虑并不需要真的指明 \(x\) 是谁,我们可以钦定一个区间只可能是左/右端点最后胜利,设 \(f_{i,j}\) 是左端点, \(g_{i,j}\) 是右端点,那么答案可以用 \(f_{i,n}*g_{1,i}\) 在乘上组合数形式的式子表达最终要求的价值和。
DP过程需要额外维护一个变量 \(v_{i,j}\) 表示两端点都获胜的价值和,转移细节挺多,鉴于本文是总结不是题解就不详细列出了。
复杂度 \(O(n^3)\)。
场上一直在想把区间DP换成其他形式的DP,因为刻板印象区间DP只有在最优化问题中才能用四边形不等式优化,今天学到了新的技巧。
也认识到了计数题不一定非要DP过程直接求出最终答案,最终答案也可以先DP一些量再合并。
T3
SG函数表达式不理性证明,感性理解就是任意整数总能表达为 \(a(m+1)+b\) (对 \(m+1\) 做除法的商和余数)的形式,所以可以分别拆成两种博弈,\(a\) 部分做 nim, \(b\) 部分做 bash。
有了这个式子剩下的部分就是fwt和循环卷积了,非常简单,但是需要卡常。
题解的复杂度有点问题(或许是我写的不对),我的复杂度是 \(O(nC(m^2+logC))\)。
(但是也就是要能推出这个式子才能做这题啊……)
近期稍微补一补常见博弈类型,计划是lg博弈题单。

浙公网安备 33010602011771号