0%

2021.11.05模拟赛

I will never go

2021.11.05 模拟赛

A. 宝藏

暴力怎么做,暴力是不是二分,二分,主席树

显然有主席树可以 O(logn)O(\log n) 检验一个位置是否满足条件,再想一下发现位置有单调性,枚举长度顺序检验即可

复杂度 O(nlogn+q)O(n\log n+q)

B. 寻找道路

震惊,无良出题人脚造数据竟使暴力满分

先把前导零去掉,剩下的部分先保证长度最短,然后保证 11 的位置尽可能靠后

11 开始 BFS 找到所有前导零的点,然后把长度相同的一起转移,先转移 00 再转移 11 的边

注意要一起转移,否则可能会有某个点用 11 更新了原本能用其他点的 00 能更新的点

C. 猪国杀

大力计数

首先我们选的卡牌必然是排完序的一个前缀

如果我们能求出来 ii 个数字 每个数字不超过 jj 总和不超过 kk 的方案数 fi,j,kf_{i,j,k}

枚举一个数字表示当前选的最大值为 jjii 个严格小于他的, tt 个等于 jj 的,选了 kkjj

方案为 i=0nj=1Ak=1nifi,j1,mkjt=kni(Aj)nut(ni)(nit)\sum\limits_{i=0}^{n}\sum\limits_{j=1}^{A}\sum\limits_{k=1}^{n-i}f_{i,j-1,m-kj}\sum\limits_{t=k}^{n-i}(A-j)^{n-u-t}\binom{n}{i}\binom{n-i}{t}

组合意义比较明显,问题是我们要求的是期望,为啥只用计算方案数?

因为方案数有重复统计的,注意到我们虽然钦定 jj 是选的数最大的,但其实他不是

因为 fi,j1,mkjf_{i,j-1,m-kj} 只要求总和小于等于 mkjm-kj 有可能选完之后后面还能选一些数

而对于固定个数列,因为我们对比当前选的数大的数没有限制,所以每个被选的数都当了遍 “最大值”,所以这样正好计算了选的个数次

D. 数树

树哈希可过

考虑状压 设 dpx,Sdp_{x,S} 表示在大树上第 xx 个节点儿子对应小树的状态 SS

考虑如果让 vv 对应 iivv 的儿子也应对应 ii 的儿子

预处理小树儿子集合转移即可,最后需要除去小树自同构的方案数

复杂度 O(nm2210)O(nm^22^{10})