CF1763C Another Array Problem
略微诈骗,容易发现 \(|a_i - a_j| \le \max(a_i, a_j)\),于是最好的情况肯定是所有数都是原序列最大值。
\(i, j\) 可以重复操作两次变为 \(0\),于是发现 \(n \ge 4\) 就可以把一边变为 \(0\),然后用最大值操作,再操作回来,就全是 \(0\) 了。\(n \le 3\) 就是分讨一下。
思想:最优化问题考虑上界,并尝试构造出上界。
CF1736D Equal Binary Subsequences
一开始想的是怎么判定一个串是否合法,很难,没想出来。在想判定的时候发现可以这么搞:直接尝试找到一类合法串,然后把原串通过一操作变过去。
合法的串中的一种就是满足 \(\forall i \in [1, n], s_{2i} = s_{2i - 1}\) 的串。应用操作一是容易的,就做完了。
思想:判定性问题,难以直接判定时,可以找到一类合法的局面,并通过一些操作变换过去。
CF1515F Phoenix and Earthquake
没做出来,结论题。
先考虑树的情况,结论:有解当且仅当 \(\sum a_i \ge (n - 1) x\)。(没猜出来)
其实也不是特别难,就是构造题要勇敢猜结论,猜到这个之后就归纳证明之类的。
归纳证明:\(n = 2\) 显然正确;那么 \(n > 3\),考虑一个叶子 \(u\),如果 \(a_u < x\) 就在最后做,因为不考虑 \(u\) 剩下的 \(n - 1\) 个点一定是合法的,并且肯定会剩下 \(\ge x\);如果 \(a_u \ge x\) 那就最先操作它,最后转化成 \(n - 1\) 的情况。
然后图的情况就随便找一棵生成树就行了。
思想:简化条件(图 -> 树),猜结论,归纳法。