摘要: "题目链接" 状压$dp$ 根据套路,先设$f[sta]$为状态为$sta$时所用的最小分组数。 可以发现,这个状态不好转移,无法判断是否可以装下新的一个物品。于是再设一个状态$g[sta]$表示状态为$sta$时 每组剩下的体积的最大值 的最大值,当枚举状态为$sta$,枚举到第$i$个时,可以得 阅读全文
posted @ 2018-10-22 20:44 Hyscere 阅读(127) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 状压$dp$。 注意到$n\leq 20$且每个只能用一次,所以很显然可以压缩每部电影看过没,记$f[sta]$为状态为$sta$时最多可以看多久。 转移时先枚举状态,然后枚举没看过的电影,二分出一个小于$f[sta]$的时间点进行转移。 答案就是所有大于$L$的状态的$1$的个数的最 阅读全文
posted @ 2018-10-22 19:49 Hyscere 阅读(98) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 线段树$+dp$. 先用线段树预处理出每个线段从左边和右边掉落到哪里,记为$f[i][0/1]$. 然后记$g[i][0/1]$为到达第$i$个线段的左边或右边所要的最小时间,注意这里并没有算纵坐标的掉落时间,因为这个可以在最后统计答案时加上一个初始的纵坐标。 然后转移时从上到下把线段 阅读全文
posted @ 2018-10-22 19:39 Hyscere 阅读(193) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 树上背包。 设$f[i][j][k]$表示$i$节点有$j$个来合成高一级的装备,买$i$节点及其子树的装备共花了不大于$k$元可以得到的最大力量值。 对于每一颗树做$tree~dp$转移,如果是叶子节点就直接算, 否则先根据儿子的限制以及钱的限制处理出最多可以买几个,然后枚举当前这件 阅读全文
posted @ 2018-10-22 19:29 Hyscere 阅读(171) 评论(0) 推荐(0) 编辑