摘要: 又是一道单调队列优化dp的题目 这道题呢 先要了解一个结论,在多种可行的堆叠方案中,至少有一种能使层数最高的方案同时使得底边最短。即底边最短的,层数一定最高。 这个是zkw大神得出的 我也不会证明来着 反正这样之后我们就可以得出正确的方法了 递推式 F[i]=min(sum[j-1]-sum[i-1 阅读全文
posted @ 2017-06-09 19:36 友人Aqwq 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 这道题也是一道单调队列 很明显满足各种性质 f【i】表示i不选前面k-1个都选的最小损失 维护的是个单增队列 q【head】是队列最小值 代码十分简介 注意longlong就okay #include<cstdio> #include<cstring> #include<algorithm> #de 阅读全文
posted @ 2017-06-09 12:03 友人Aqwq 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 这道题就是典型的单调队列优化dp了 很明显状态转移的方式有三种 1、前一天不买不卖: dp[i][j]=max(dp[i-1][j],dp[i][j]) 2、前i-W-1天买进一些股: dp[i][j]=max(dp[i-W-1][k]-(j-k)*AP[i],dp[i][j]) 3、前i-W-1天 阅读全文
posted @ 2017-06-09 11:02 友人Aqwq 阅读(230) 评论(0) 推荐(0) 编辑