模拟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记录总长度。

因为一个点可能指向多个点,应当用一些东西辅助转移。

原文地址:https://www.cnblogs.com/skyh/p/11603741.html