2023-2-15 #38 莫说就此别过 万篇唱过 噩梦与温存
——闹闹丶《失重怀想》
208 AT_code_festival_2017_quala_f Squeezing Slimes
这种都不会做🤧???
锣鼓题解感觉比较感性,翻译一下官方题解。
一个数用 \(\lceil\log x\rceil\) 次操作组合出,而且这个数一定是下界。多个数我们可以把相邻的数一起操作减少一次,具体地,若第 \(i\) 个位置左侧、右侧分别操作了 \(l_i,r_i\) 次,则答案可以减少 \(\sum\min(r_i,l_{i+1})\)。
下面给出一个优秀的策略,我们不妨记一个数对应的三元组是 \((l_i,t_i,r_i)\)(注意到 \((l_i,t_i,r_i)+(l_j,t_j,r_j)=(l_i,t_i+t_j-\min(r_i,l_j),r_j)\)),表示左侧、总共、右侧的操作次数:
- 若 \(x=2^k\),则直接使用 \((k,k,k)\)。
- 否则 \(2^k<x<2^{k+1}\),我们使用 \((k-1,k,k)\) 或 \((k,k,k-1)\)。
得到这个策略后很容易通过 DP 或者贪心线性求解。
接下来我们证明可行性与最优性,先证明可行:
\(x=2^k\) 显然,我们直接看 \(2^k<x<2^{k+1}\),两个同理我们只考虑 \((k-k,k,k)\)。
套一层归纳,假设 \(\leqslant 2^k\) 的数我们都会组合了。通过讨论 \(x-2^k\) 与 \(2^{k-1}\) 的大小关系很容易发现 \(x-2^k\) 与 \(2^k\) 合并总能达到 \((k-1,k,k)\)。
最优性分两个方面:
- \(t_i\) 上的最优:显然有 \(2^{t_i}\geqslant x\)。
- \(l_i+r_i-t_i\) 上的最优:可以发现 \(l_i+r_i-t_i\) 为全局操作次数,而全局操作一次数字减半,所以有 \(2^{l_i+r_i-t_i}\leqslant x\)。
因此我们的 \(\sum t_i\) 达到了最小,而由于每个 \(l_i+r_i-t_i\) 都是最大值,若某些 \(t_i\) 变大一定不会使新的答案更优。
209 AGC061D Almost Multiplication Table
无语题!!!
210 AGC055C Weird LIS
让我想起了 P8554 心跳 啊!
所有数字一定要么是 LIS 要么是 LIS 减一,我们简单去除掉所有数字相等的情况,那么剩余的情况最大值一定对应 LIS 的值:(我们记 LIS 的值为 \(l\))
- 全为 LIS 减一:当且仅当 \(l=n-1\)。
- 全为 LIS:当且仅当 \(l\leqslant\lfloor\frac n2\rfloor\),很容易给出构造:\(\{n,n-1,\cdots,2l+1,2,1,4,3,\cdots,2l,2l-1\}\)。
那么只用考虑哪些位置去掉后 LIS 减少,
无语!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
211 P7670 [JOI2018] Snake Escaping
很经典的技巧啊,现在才了解到。
于是下午都在摆~~~~~~~~~~
212 CF1566H Xor-quiz