您当前的位置: 首页 > 

*DDL_GzmBlog

暂无认证

  • 0浏览

    0关注

    605博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[背包] 背包有关于 恰好,不超过,至多问题的总结

*DDL_GzmBlog 发布时间:2021-12-07 18:11:38 ,浏览量:0

目录
      • 前言
        • 1. 不超过
          • 1.1 方案数
          • 1.2 最值问题
        • 2. 恰好
          • 2.1 方案数
          • 2.2 最值问题
        • 3. 至少是
          • 3.1 方案数
          • 3.2 最值问题

前言

会考虑如何证明

1. 不超过 1.1 方案数

对于方案数,我们需要先初始化 f ( 0 ) [ i ] = 1 f(0)[i] = 1 f(0)[i]=1 然后从 v v v到 m m m的倒序转移即可

for(int i=0;i0 要么就是从0->m

3.1 方案数

除了 f [ 0 ] [ 0 ] = 1 f[0][0] = 1 f[0][0]=1之外其他全部为 0 0 0

然后我们倒序状态转移

	f[0] = 1;
	for(int i=1;i=0;j -- )
			f[j]+=f[j-v ?  0];
3.2 最值问题

除了 f [ 0 ] = 0 f[0]=0 f[0]=0外,其他全部是 -INF 只会求最小值

然后我们倒序状态转移

	memset(f,-0x3f,sizeof f);
	f[0]=0;
	for(int i=1;i=0;j -- )
			f[j] = min(f[j],f[j-v ? 0 ]+w);
关注
打赏
1657615554
查看更多评论
0.0400s