2024.7 #2 幻想现实交映辉耀 朝向命运刻下惊叹号 要我 的骄傲 随生命喧嚣
幻想现实交映辉耀
朝向命运刻下惊叹号
要我 的骄傲
随生命喧嚣
T1.CF452F Permutation
先抛出一个结论对于固定的 \(i,a\),\(i + 2^a \times k\) 和 \(i - 2^a \times k\) 在同一侧。
那么既然 \(k\) 是一步一步向外扩展的,那么这个东西一定是前缀或者是后缀。而我们要判断的相当于是,对于每个 \(i\) 和 \(a\),是否这些前缀或后缀上的数的下标是否都大于或都小于 \(i\) 的下标,并且这些数都是 \(\mod 2^{a+1}\) 的同余类。然后我们就可以枚举 \(a\)。接着处理这些前缀与后缀上的数的下标的最大值和最小值,然后进行判定即可。
T2. CF1924D Balanced Subsequences
我们定义 \(c_i\) 为加入第 \(i\) 个字符后还需要匹配的左括号的数目。
-
若第 \(i\) 个是左括号,\(c_i = c_{i - 1} + 1\)。
-
否则当 \(c > 0\) 时,\(c_i = c_{i - 1} - 1\)。
那么没有计入答案的右括号总共有 \(m−k\) 个,即经过此次操作 \(c\) 仍然保持 \(0\) 不变。如果这个时候选择了 \(-1\),那么之后的 \(c_j\) 都要 \(-1\)。转换一下可得 \(c_j = \min^n_{i = 1} = k - m\)。
然后我们将 \((i,c_i)\) 放到平面上,那么就等同于:
-
从 \((0,0)\) 到 \((n + m,n - m)\),每一次向右上或者右下走一格。
-
路径经过 \(y = k − m\),且 \(\min^n_{i = 1}c_i = k - m\)。
但是我们可以把整一个平面旋转 \(45\) 度。
那么就变成了
-
从 \((0,0)\) 到 \((n,n)\),每一次向右或者上走一格。
-
路径经过 \(y = (k − m) + x\),且不能经过这个函数的右边。
第二条可以转化为经过直线 \(y = (k - m) + x\) 的路径数 - 经过直线 \(y = (k - m) + x - 1\) 的路径数。
对于一条直线的答案,我们直接把 \((n,m)\) 关于直线对称后到了 \((n_2,m_2)\),然后答案就转化为 \((0,0)\) 到 \((n_2,m_2)\) 的路径数了。
那么最终的答案就是 \((^{n + m}_{k}) - (^{n + m}_{k - 1})\)。
T3.[ABC290F] Maximum Diameter
神仙题目。
我们只需要考虑 \(\sum a_i = 2n - 2\) 并且 \(a_i > 0\) 的序列即可。
先考虑最大化树的直径,假如说 \(a\) 中有 \(k\) 个 \(1\),即最后的树上一共有 \(k\) 个儿子节点,那么我们只需要把剩下的 \(n - k\) 个点排成一条链,然后再向两端加上两个叶子节点,剩余的叶子节点补到链上度数不够的节点。这样子直径的长度就是 \(n - k + 1\)。然后我们考虑怎么计数。枚举 \(k\),那么叶子节点的选择方案数显然为 \(\dbinom nk\)。如此一来剩下的节点的度数和就是 \(2n - 2 - k\),剩下的节点数就是 \(n - k\)。那么就相当于把 \(2n - 2 - k\) 个球放到 \(n - k\) 个盒子里面,并且每一个盒子至少有 \(1\) 个球。那么其数量就为:
那么在乘上链的长度,最终的答案就是 \(\sum^n_{i = 1}\dbinom nk \dbinom {n - 3}{k - 2} (n - k + 1)\),但是这个东西求一次要 \(O(n)\) 的复杂度,难以接受。
在继续化简的前面,我们需要了解两个式子:
-
吸收恒等式:\(k \dbinom nk = n \dbinom {n-1}{k-1}\)
-
范德蒙卷积:\(\sum_{k = 0}^{k} \dbinom ni \dbinom {m}{k - i} = \dbinom {n+m}k\)。
上面两个都很好证明,在这里就不给证明了。然后就可以对于上面的式子进行化简了。
然后这样子就可以 \(O(1)\) 求出答案了。
T4. CF1267G Game Relics
我们的一个最优选项是,能抽卡的抽卡,不能抽出来的就去买。假如说我们当前有了 \(i\) 张牌,那么抽出下一张牌就要抽 \(\dfrac{n}{n - i}\) 次。
除了最后一次之外,其他的次数都可以让我们获得 \(\dfrac{x}{2}\) 的回馈,最后一次消耗 \(x\) 获得新卡,则期望消耗 \((\dfrac{n}{n - i} - 1) \times \dfrac{x}{2} + x\)。
接着寻找抽卡与买的分界线。考虑把所有直接购买的花费均摊到每次之中。然后我们此时已有的价值为 \(w_1\),价值总和为 \(w\),那么单次消耗 \(\dfrac{w - w_1}{n - i}\)。那么判定条件就是: \(\dfrac{w-w_1}{n - i} < (\dfrac{n}{n - i} - 1) \times \dfrac{x}{2} + x\)。
然后我们设 \(a_{i,j}\) 为选了 \(i\) 张牌,已经有了价值为 \(j\) 的事件。\(dp_{i,j}\) 为其组合数量,那么答案就是 \(\dfrac{dp_{i,j}}{\dbinom{n}{i}}\)。