8.5
8.5
1. AGC040E
因为操作有 2 个,自然想到把 \(a\) 拆成 2 个相加的形式。
然后有 1 个显然的 2 维 dp。
挖掘性质,发现一个 \(i\) 最多有 \(3\) 个 dp 值,原因是 dp 只可能 0/+1/+2。
又有单调性,维护一下分界点。
2. 冒泡排序
等价于要求每个数方向不能变。
推出不能有 \(i<j<k,a_i>a_j>a_k\)。
最多有长度为 \(2\) 的下降子序列。
虽然我不知道怎么 dilworth 的,但是感觉就是可以划分成 2 个上升子序列。
然后 dp,用 catlan 的推法搞出组合式。
3. CF1416D
倒着加边,维护每次查询在重构树上的祖先节点。
然后 ds 即可。
4. CF1973D
首先观察 \(m\) 的一些约束,可知 \(m\) 一定是 \(\max a_i\) 的倍数。
可以通过 \(n\) 次询问知道 \(\max a_i\)。
然后枚举 \(m\)。推出 \(m=t*\max a_i\)。
\(m*k \le f(1,n)=n*\max a_i\)
所以 \(t*k\le n,t\le n/k\)。
枚举 \(t\),每次贪心选取。
5. sbyyn
垃圾题,浪费我 1 个小时。滚滚滚!