摘要: 原题链接 考察:01背包 完全不会...是看大佬的题解. 自己空想了几个小时,还是要动笔啊!!! 思路: 这里有两个属性值,一个是智商,一个情商,而且没有体积等限制条件,只有智商和情商的限制条件.但是我们可以将智商和(或者情商和)作为体积值,这个背包的最大体积不是数据的牛的智商和,而是牛的最大智商* 阅读全文
posted @ 2021-02-01 22:57 acmloser 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:01背包 这道题懵逼半天,看了大佬的代码终于懂了点 思路: 这道题是和购买顺序有关的,我们先拿出最贵的菜,同时余额拿出5元,在剩余的余额尽可能买总和贵的菜.买完最后余额拿出的5元再买最贵的菜,这就是正解了.... 也因为这道题搞明白了点01背包的板子.f[i][j]表示在j余额条件下 阅读全文
posted @ 2021-02-01 18:08 acmloser 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:01背包 应该是简单题,毕竟连我这种lj都写出来了233 思路: 这道题是求方案数,不是取最值,因此我们是将模板的状态转移方程的max改成+,初始化的时候f[0][0] = 1,因为从前0个数选,和为0视为一种方法.(否则f数组一直是0)233 注意这道题不能取模,因为和需要恰好是m 阅读全文
posted @ 2021-02-01 15:53 acmloser 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:01背包dp 错误思路: 很容易想到f[i][j]代表最大值,i代表从前i个物品选,j代表此方案数量和的余数. 像之前的01dp模板题一样,先给f[i][j]赋值f[i-1][j],再是当j>=sum[i]%k时再赋最大值. 错误原因已在注释标明 1 for(int i=1;i<=n 阅读全文
posted @ 2021-02-01 15:10 acmloser 阅读(63) 评论(0) 推荐(0) 编辑