摘要: 题目描述 题解: 这是个多重背包,但是一般的复杂度是过不去这题的。 所以有二进制优化和单调队列优化。 二进制优化是将数量$n$化为多个数,而且这些数能表示出$1~n$中的任意数。 怎么保证? 想起二进制,我们可以将$n$分为$1+2+4+8+……+k$,$k$可以是任意数。 单调队列怎么优化? 我们 阅读全文
posted @ 2019-01-02 07:48 LiGuanlin 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 应该是个$dp$; $dp[i][j]$表示第$i$个人涂到第$j$块的最大收益。 推一下式子:$$dp[i][j]=max(dp[i-1][j],dp[i][j-1],dp[i-1][k]+(j-k)*p[i])$$ 对于最后面那个式子可以化一下:$$max(dp[i-1][k] 阅读全文
posted @ 2019-01-02 07:39 LiGuanlin 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 由于$p<=10$,我们可以暴力枚举覆盖频道状态为$s$的特殊点,每次跑一遍斯坦纳树, 最后合并,方程和斯坦纳树的状态合并方程几乎一样。 代码: 阅读全文
posted @ 2019-01-02 07:30 LiGuanlin 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 这道题是斯坦纳树的典型例题。 首先看一眼数据范围发现$10$的范围不状压对不起出题人,然后考虑转移。 设$f[i][j][s]$表示当前在点$(i,j)$,覆盖特殊节点状态为$s$的最小花费。 转移有: 1.$s$不变,此时有$f[i][j][s]=min(f[i'][j'][s] 阅读全文
posted @ 2019-01-02 07:24 LiGuanlin 阅读(115) 评论(0) 推荐(0) 编辑