模拟53 题解
A. u
一眼差分,在斜线上加一减一。
然后发现这样的复杂度是$O(nq)$的,似乎不是很好过。
然后发现打差分标记的形式也是连续的,所以差分两次就完了。
B. v
最优决策问题,一般倒着转移,$O(n*2^n)$的dp是显然的。
考试时一直在想能否改成三进制状压,只压15位状态,表示距离边界距离为i有多少个白球。
然后发现没有办法确定某个状态会转移到谁,于是打了全部部分分。
其实仔细想想就可以发现,状态数不会很多。
对于剩余球比较多的情况,状态数不会超过$C_n^i$,
对于剩余球比较少的情况,状态数不会超过$2^i$。
所以正解其实是用hash表记忆化状压搜索。
其实状态数不会超过$\sum \limits_{i=1}^{n+1} fib_i$,证明见评论区。
PS:证明全靠大神cbx提携。
C. w
首先应当发现一条性质,如果只考虑进行操作的边,那么答案为这些边造成的奇数度数的点数除2。
在这个奇数度数点最少的前提下,应当使总长度最小。
所以用一个pair来进行转移,first记录奇数点个数,second记录总长度。
因为一个点可能指向多个点,应当用一些东西辅助转移。