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博弈题单。

posted @ 2023-02-09 18:46  Displace  阅读(19)  评论(0)    收藏  举报