2025.6.17 NOI 模拟赛
T1 NFLS #18438. 如何区分猫和猫头鹰
题意
给定一棵树,一个整数 \(k\) 和 \(a_{1\sim m},r_{1\sim m},c_{1\sim m}\),求出 \(\min_u \sum_{i=1}^m c_i\left\lceil\frac {\max(\text{dis}(u,a_i)-r_i,0)}{k}\right\rceil\),\(n,m,k\le2\times10^5\)
分析
将 \((a,r,c)\) 挂在点 \(a\) 上,对于点 \(u\) 上的 \((r,c)\) 的集合记为 \(S_u\)
点分治,容易转化为给定树上一个连通块 \(B\),\(\forall u\in B\),求出 \(\sum_{v\in B}\sum_{(r,c)\in S_v} c\left\lceil\frac{\max(d_u+d_v-r,0)}k\right\rceil\),其中 \(d\) 为到分治中心的距离
考虑每个 \((r,c)\) 的贡献,对 \(d\) 相同的 \(u\) 贡献相同,因此开长度为最大 深度的数组记录每个深度的总贡献,则一个 \((r,c)\) 相当于给定 \(p,v\),令 \([p,p+k)\) 加上 \(v\),令 \([p+k,p+2k)\) 加上 \(v+1\),以此类推,容易前缀和实现
总时间复杂度 \(O((n+m)\log n)\)
T2 NFLS #18439. 如何区分洛天依和初音未来
题意
\(n\) 种卡牌,第 \(i\) 种有 \(a_i\) 张,要取出 \(b_i\) 张,每次抽取都会从剩余牌中等概率随机选择一个,若这种已经达到上限则放回,否则保留,求达到目标的期望操作次数,\(n\le50,\sum a_i\le2000\)
分析
转化题意:有 \(C,D\) 两个集合,初始为空,每次从剩余牌中取出一张,若 \(C\) 中这种牌已经达到要求,则放入 \(D\),否则放入 \(C\),这样一次操作贡献为 \(\frac{m-|C|}{m-|C|-|D|}\)(操作前的 \(|C|\) 和 \(|D|\))
转化为对于每个 \((C,D)\) 求出贡献乘概率的总和
令 \(f_{i,j,k}\) 表示前 \(i\) 种牌有 \(j\) 张放入 \(C\),\(k\) 张放入 \(D\) 的方案数,则答案为
\(f\) 的转移为
时间复杂度 \(O(m^3)\),经过一定程度的优化可以过
用 \(\text{NTT}\) 优化之可以做到 \(O(m^2\log m)\)
存在 \(O(m\log^2 m)\) 的做法
T3 NFLS #18440. 如何区分台湾和中华民国
比赛结果
\(35+25+21\),\(\text{rk}43\)

浙公网安备 33010602011771号