模拟2
Day1
T1
考虑怎么计算一个长为 len 的序列 a 的 Gobo sort 的期望次数。令 \(b_i\) 表示 a 中 i 出现的次数
那么期望次数为\(E = len!\prod\limits_{i} b_i\)
考虑30分,可以直接暴力递归求解,每次取最小值就好了
freopen写错了,可能还有一些奇奇怪怪的地方写错了吧,改的时候又想到了一些问题不过样例没卡
T2
有一些人没有人可以感染他,我们称作是关键点,不难想象当最后一个关键节点被感染,游戏结束
在 n 个数字的所有排列中,有 m 个关键的数字,计算所有关键点最后一个出现的位置的期望
此时\([pos+1,len]\)没有关键点,而最后一个关键点的选取又有m种,所以最后的答案为:
\(C\begin{pmatrix}len-pos\\len-m\end{pmatrix} \times (len-pos)!\times (pos-1)!\times m\)
T3
这样可以区间 DP,设 \(dp_{1,n}\) 表示 [1,n] 自给自足的答案是多少。那么 n 一定要放,照不到的做成区间 \([l_i ,r_i ]\) 以后,每个区间的答案是 \(min(dp_{l_i ,r_i} ,dp_{l_i ,r_i +1} )\)。分别表示选取 i − 1和 i 的情况。
这样复杂度 \(O(n^3 )\)。不难发现如果区间 DP 的时候固定右端点,左端点从右往左扫过去,复杂度可以优化到\(O(n^2 )\)。
Day2
T1
pufer数列(应该是叫这个名字):对应唯一的一棵无根树,数列中每个数出现的次数=度数-1
得出dp[i][j][k] 前i个点,选了j个点,pufer数列中填了k个数的方案数
dp[i+1][j][k] += dp[i][j][k];(不选当前点)
dp[i+1][j+1][k+w] += dp[i][j][k]*C(k+w,w);(选当前点,且当前点出现了w次)
题面不给模数啊,太坑了
T2
算博弈吧,但是给的树形dp,标算给的也比较奇怪,我写了一个假的博弈好像,得了20分
T3
dp+记忆化,不知道算不算数位dp,打算写写看,如果写出来了就补题解
Day3
T1
扩展汉诺塔,n个盘子,m个柱子的情况
先来回想三个柱子的情况:f[i]表示i个盘子的最小步数 f[i] = 2*f[i-1]+1
可以看成是把i-1个盘子移到2上,把最大的盘子移到目标柱子,然后再把i-1个盘子移到目标柱子
再来扩展到m个柱子:f[i][j]表示i个盘子,j个柱子的最小步数 f[i][j] = min(f[i-k][j]*2+f[k][j-1])
可以看成是把i-k个盘子在移到j个盘子中的一个,这时剩下j-1个盘子,然后把剩下的k个盘子移到目标柱子,最后把i-k个盘子移到目标柱子
T2
构造,贪心
T3
期望带回头,两个数组:f[x]表示从x走到fa[x]的期望边数,g[x]表示从fa[x]走到x的期望边数
通过各种枚举边的情况,可以得出一个两个式子
f[x] = \(\sum\limits_v\) f[v] + deg g[to] = f[x]+g[x]-f[to]
然后可以树上路径和就好啦
Day4
又是一天的Day4
T1
仔细思考一下不难发现答案很小,并且举不出 > 2的例子,很简陋不严谨
首先如果 s 不是回文串答案为 1。
考虑对于 1<=i<n,是否都满足 s[1..i]和 s[i+1..n]至少有一个是回文的。如果不满足那么答案为 2。
如果满足的话,如果 s[1]=s[2],那么 s 只会形如 aaaaa或 aaabaaa;如果 s[1]!=s[2],那么 s 只会形如 abababa。这三种情况都是无解的。
T2
把每个状态都算一遍然后取所有情况中最大的,正解最小割,连边属实想不到
T3
博弈问题,单个问题应该都是很好解决的吧,只是要把每个问题都计一遍数……
不妨假设 a<b。
每堆石子先对 a+b 取模,然后可以分为 4 种:
(1) xi<a,没用。
(2) a<=xi<b,只要存在则 a 必胜。
(3) b<=xi<2a,只和奇偶性有关。
(4) 2a<=xi,存在至少 2 个则 a 必胜,存在 1 个且(3)为偶数则先手必胜,存在 1 个且(3)为奇数则 a 必胜,不存在且(3)为奇数则先手必胜,不存在且(3)为偶数则后手必胜。
Day5
T1
刚开始看还以为是某个数据结构维护的题,但是后来才发现是搜索!
启发式迭代加深搜索+估价函数剪枝
T2
T2看到有向图可能有环就想到了Tarjan缩点
1、由于最长链上的点两两不能同时轰炸,因此最优解>=最长链长度。
2、令 fi 表示从 i 出发的最长链长度,那么在第 fi 轮轰炸 i,可以得到一个恰好为最长链长度的方案,因此最优解<=最长链长度。
容易发现将一个大小为 x 的强连通分量替换成一个长度为 x 的链,所有点两两之间的连通关系不变。
T3
AC自动机+dp,看到n <= 6,可以状压,反对称就可以先考虑一半,不过好像有一点细节,我不太会写,尝试再看一看吧