模拟66—「接力比赛·树上竞技·虚构推理·记忆碎片」
接力比赛
垃圾随机化题,考场白做两个小时,沙比背包加卡常。
树上竞技
链上部分分给了一个误导,一直以为是枚举点算贡献,实际是枚举边算贡献(所以 \(m=2\) 是正确导向。。)
可以先 \(dfs\) 一遍求出来每个点子树大小,假设为 \(sz\) , 然后一条边被经过的次数就是 \(\sum_{i=1}^{m-1} C_{sz}^{i}*C_{n-sz}^{m-i}*min(i,m-i)\)
把 \(min\) 拆开,以第一部分举例 \(\sum_{i=1}^{\frac{m-1}{2}} C_{sz}^{i}*C_{n-sz}^{m-i}*i\)
化简一下 \(sz*\sum_{i=1}^{\frac{m-1}{2}} C_{sz-1}^{i-1}*C_{n-sz}^{m-i}\)
考虑其组合意义,就是从 \(n-1\) 个数中选出来 \(m-1\) 个数,且前 \(sz-1\) 最多选 \(\frac{m-1}{2}-1\) 个的方案数。
设 \(G(sz)=\sum_{i=1}^{\frac{m-1}{2}} C_{sz-1}^{i-1}*C_{n-sz}^{m-i}\) , 则 \(G(sz) \rightarrow G(sz+1)\) 的过程中,少了下述情况
在前 \(sz-1\) 选 \(\frac{m-1}{2}-1\) 且在 前\(sz\) 选\(\frac{m-1}{2}\)(也意味着在 \(sz\) 必须选)。
可以发现他的方案数是 \(C_{sz-1}^{\frac{m-1}{2}-1}*C_{n -sz-1}^{m-\frac{m-1}{2}-1}\) (前面后面分别选,在 \(sz\) 必须选的方案数)
所以可以递推一下就好了, \(G(1)\) 暴力算,然后按 \(G(i+1)=G(i)-C_{sz-1}^{\frac{m-1}{2}-1}*C_{n -sz-1}^{m-\frac{m-1}{2}-1}\) 递推即可。
还有一部分和上述同理,基本是减号改成加号在乱改改之类的吧。
虚构推理
很显然的二分答案,然后剩下了一个大模拟。
发现要实现的就是若干个区间取交集,且一次 \(check\) 最多出现 \(n\) 个区间。
柯朵莉树实现一下就好了,复杂度 \(25*nlogn\) (25是二分次数)。
发现自己模拟题打的好慢,主要是思路必须先明确,考场给的时间不多,连区间可能有很多个都没想到。
记忆碎片
\(a_i<=n\) 都不会,等我会这个部分分再说正解。
总结
T1题目垃圾浪费时间,血亏,还不如早点去打 T3 大模拟。
T2其实想到枚举边就可做了,奈何我想不到加上组合计数弱者buff导致 \(50pts\) 也就上限了。
T4改的话我必须先把那个部分分搞明白,增加一下组合计数联系

浙公网安备 33010602011771号