链接
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=100926#overview
A有难度的区间动态规划
首先计算如果无色的向目标状态过渡,
然后在计算初始状态向目标过渡
B
动态方程很简单不过需要用到队列优化
注意单调队列的经典写法
while (!F(head) && head <= tail)
head++;
while (!F(tail)&& tail >= head)
tail–;
q[++tail] = j;
k = q[head];
dp[i][j] = max(dp[i][j], dp[i - 1][k] + delta);
C树形动态规划,需要考虑回不回到根的问题
其中一边深度搜索,一边进行背包的想法值得借鉴
D UVALive - 4490 Help Bubu
题意是抽取K本书使得这些书的波荡程度最小
书的高度范围很小很明显需要用状态压缩
可以借鉴B题的想法,在更新答案的时候不需要考虑拿走的书会放在哪里,只需要在最后求结果的时候对书进行贪心的放置就行了。