背包dp
文章平均质量分 84
ez_lcw
这个作者很懒,什么都没留下…
展开
-
【LOJ6077】【2017 山东一轮集训 Day7】逆序对(排列计数DP,容斥,旋转体积背包)
搞不懂排列计数。一种计数方法是考虑从小往大往当前排列中插入每个数,存在一次插的位置不同那么最后的结果也不同。那么考虑插入 iii 时,对于 x∈[0,i−1]x\in[0,i-1]x∈[0,i−1] 均有且仅有一种方法使得逆序对个数增加 xxx。法一:考虑 DP,设 fi,jf_{i,j}fi,j 表示插入了 iii 个数,已经有 jjj 个逆序对的方案数,那么有转移 fi,j=∑l=0i−1fi−1,j−lf_{i,j}=\sum\limits_{l=0}^{i-1}f_{i-1,j-l}fi,原创 2021-10-29 22:02:17 · 222 阅读 · 0 评论 -
【NOI2020】制作菜品(结论)
首先 m≥n−1m\geq n-1m≥n−1 一定有解:若 m≥nm\geq nm≥n,那么 maxdi≥k\max d_i\geq kmaxdi≥k,直接用 maxdi\max d_imaxdi 一直做即可,接下来肯定是继续进入两种情况中的一种。若 m=n−1m=n-1m=n−1,那么 mindi+maxdi≥k\min d_i+\max d_i\geq kmindi+maxdi≥k 且 mindi<k\min d_i<kmindi<k,直接用完 mindi\原创 2021-10-20 17:17:55 · 98 阅读 · 0 评论 -
树上连通有关背包:【BZOJ4182】shopping &【HDU6566】The Hanged Man
选这两道题是因为这两道题都是树上背包,而且选的点的要求都与连通性有关,而且都是按 dfs 序 DP 来模拟不断加入物品,而且都能用树剖和点分治优化(不过优化的点一个跟子树大小有关一个跟深度有关),比较相似。【BZOJ4182】shopping题意:树上多重背包,要求选了的点是一个连通块。暴力想法设 fu,if_{u,i}fu,i 表示选了以 uuu 为根且在 uuu 子树内的连通块,花费为 iii 的最大收益。如果使用暴力合并子树的方法的话,时间复杂度 O(nm2)O(nm^2)O(nm2),而且原创 2021-08-25 22:25:29 · 221 阅读 · 1 评论 -
【USACO10JAN】Cheese Towers S 奶酪塔 (背包dp)
一种思路奇特的做法。看到题目容易联想到背包dp,因为看上去很像。但是我们并不知道上面有没有大奶酪。所以我们不妨倒过来看,从上往下加奶酪。设 dp(i,1/0)dp(i,1/0)dp(i,1/0) 表示当前从上往下的累加高度为 iii,这之中有/无大奶酪。显然,当我们考虑新加一个奶酪时,有:{dp(i,0)=max(dp(i−hj,0)+vj) (hj<K)dp(i,1)=max(dp(i−hj,0)+vj) (hj≥K)\begin{case原创 2020-07-19 16:26:18 · 221 阅读 · 0 评论