做题记录 25.5.29
\(\textcolor{purple}\odot\) CF1821F Timber
假定对于一种树的放置方式,从左往右考虑,能向左倒就向左,否则向右,这样一种倾倒方式唯一对应一种放置方案
令 \(f_{i,j}\) 表示前 \(i\) 棵树,第 \(i\) 棵覆盖到 \(j\) 位置的方案数
则转移为
答案为 \(\sum_j f_{m,j}\)
显然 \(f_{u,\ast}\) 的 \(\text{OGF}\) 为 \(\left(\sum_{t=k+1}^{2k}2x^t+\sum_{t=2k+1}^{\infty}x^t\right)^u\)
因此答案为 \(\left(\sum_{t=k+1}^{2k}2x^t+\sum_{t=2k+1}^{\infty}x^t\right)^m\) \(x^0\) 到 \(x^n\) 项的系数和
使用多项式快速幂可以做到 \(O(n\log n)\),但常数过大
答案为
而
因此答案等于
令 \(f_t=[x^{kt}](2-x^k)^m=\binom mt(-1)^t 2^{m-t}\),\(g_t=[x^t]\left(\frac1{1-x}\right)^m=\binom{t+m-1}t\),\(h\) 为 \(g\) 的前缀和数组,容易 \(O(n)\) 处理,则答案为
时间复杂度 \(O(n)\)
\(\textcolor{purple}\odot\) CF1817C Similar Polynomials
令 \(a_i=[x^i]A\),\(b_i=[x^i]B\),则
因此
取 \(i=n-1\),得 \(b_{n-1} = a_{n-1} + n a_n s\),因此得到 \(b_{n-1},a_{n-1},a_n\) 后可求出 \(s\)
转化为存在 \(n\) 次多项式 \(F\),给定 \(a_i=F(i)\;(0\le i\le n)\),求出 \([x^n]F\) 和 \([x^{n-1}]F\)
考虑拉格朗日插值,显然 \(F=\sum_{i=0}^n a_i \prod_{j\ne i}\frac{x-j}{i-j}\)
则
\(\textcolor{purple}\odot\) CF1817D Toy Machine
令 \(n\gets n-2\),令 \(m=\frac{n+1}2\)
\(\text{LDRULU}\) 可以把 \(1\sim n\) 重排为 \(2\sim m,m+2\sim n-1,1,m+1,n\),对称地 \(\text{RDLURU}\) 可以把 \(1\sim n\) 重排为 \(1,m-1,n,2\sim m-2,m\sim n-1\)
操作不超过 \(m-1\) 次时,\(\text{LDRULU}\) 相当于把 \(1\sim m\) 不断向前移,每次把第一个移到后面,而后面部分不保证顺序,实际上操作 \(m\) 次后第一个元素为 \(m+1\),因此 \(\text{LDRULU}\) 操作不超过 \(m\) 次后第一个元素为操作次数加一,当 \(k\le m+1\) 时,可以 \(\text{LDRULU}\) 重复 \(k-1\) 次后操作 \(\text L\)
当 \(k>m+1\) 时,先 \(n-k\) 次 \(\text{RDLURU}\) 把 \(k\) 移到最右边,然后进行 \(m-1\) 次操作 \(\text{RDLD}\),每次会把一个元素放到第二行右边的空缺中,且保持 \(k\) 仍然在第一行最后一个元素,操作过后第二行后一个空缺被填满,第一行剩下 \(m\) 个数,最后一个为 \(k\),再进行 \(m-1\) 次 \(\text{LDRULU}\) 即可把 \(k\) 移到第一个位置,再进行一次 \(\text{L}\) 即可
\(\textcolor{purple}\odot\) CF1815D XOR Counting
当 \(m=1\) 时显然只能表示出 \(n\)
当 \(m\ge 3\) 时,能且仅能表示出 \([0,n]\) 中与 \(n\) 奇偶性相同的值,设为 \(x\) 则构造 \(x\;\;\frac{n-x}2\;\;\frac{n-x}2\;\;\cdots\),所有这样的 \(x\) 的和是容易计算的
考虑 \(m=2\) 的情况,令 \(S_n=\{x\oplus (n-x)\mid 0\le x\le n\}\),令 \(f_n=\sum_{u\in S_n}u\),令 \(g_n=|S|\),考虑 \(dp\)
当 \(n\) 为奇数时,设 \(n\) 拆为 \(a+b\),且 \(a\) 为奇数,令 \(A=\frac{a-1}2,B=\frac b2\),则 \(a\oplus b=(A\oplus B)+1,A+B=\frac{n-1}2\),因此 \(f_n=2f_{\frac n2}+g_n\),\(g_n=g_{\frac n2}\)
当 \(n\) 为偶数时,同理得 \(f_n=2(f_{\frac n2}+f_{\frac n2-1})\),\(g_n=g_{\frac n2}+g_{\frac n2-1}\)
时间复杂度 \(O(T\log n)\)
\(\textcolor{purple}\odot\) CF1819D Misha and Apples
显然需要令最后一次清空最靠前,得到最后一次清空的位置的最小值 \(f\) 后,若 \((f,n]\) 中存在 \(k_i=0\) 则答案为 \(m\),否则答案为 \(\sum_{i=f+1}^n k_i\)
考虑如何计算 \(f\)
对于所有 \(i\) 计算出 \(mx_i\),表示 \(S_j\) 与 \(S_i\) 有交的 \(j\;(j<i)\) 的最大值,容易 \(O(\sum k_i)\) 求出,注意清空时需要保证复杂度
令 \(f_i\) 表示只取 \(S_1\sim S_i\),最后一次清空的位置的最小值,显然 \(f\) 单调不降
令 \(can_i\) 表示 \(S_i\) 能否被清空
令 \(lse_i\) 为 \(i\) 之前第一个 \(k_j=0\) 的 \(j\)
则
时间复杂度 \(O(\sum k_i)\)
\(\textcolor{purple}\odot\) CF1814F Communication Towers
线段树分治,转化为集合合并,撤销,标记一个集合
并查集按秩合并,对于每个点,记录一个标记 \(tg_u\),若 \(u\) 到根的链上的 \(tg\) 之和 \(>0\) 则表示 \(u\) 被标记过,否则没有被标记
标记一个连通块时直接修改代表元的标记即可
集合合并时,设要把 \(u\) 连到 \(v\) 下,则 \(tg_u\gets tg_u-tg_v\),撤销时与之相反
时间复杂度 \(O(m\log^2 n)\)
\(\textcolor{blue}\odot\) CF1814E Chain Chips
显然最优情况下每个置换环占据一个区间
对于一个置换环,最优情况下区间内所有边恰好选择两次
显然每个置换环至少含有一条边(这条边被使用两次)
转化为 \(n-1\) 条边,选择若干条断开,不能同时断开两条相邻的,不能断开第一条和最后一条,最小化剩余边的总和的两倍
容易 \(\text{DDP}\) 做到 \(O(n+q\log n)\)

浙公网安备 33010602011771号