暴力:暴力枚举少了哪个,下面套一个01背包

f[i][j]表示到了i物品,用了j容量的背包时的方案数,f[i][j]=f[i-1][j]+f[i-1][j-w[i]]O(n^3)

优化:不考虑消失的,先跑一个01背包,

定义g[i][j]表示i消失时,容量为j的方案数,g[i][j]=f[n][j]-不合法的

逆着过来就是g[i][j]-=g[i][j-w[i]

 #include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=;
#define R register
int w[maxn],n,m;
int f[maxn][maxn],g[maxn][maxn];
int main()
{
scanf("%d%d",&n,&m);
for(R int i=;i<=n;++i)
scanf("%d",&w[i]);
f[][]=;
for(R int i=;i<=n;++i)
for(R int j=;j<=m;++j){
f[i][j]=f[i-][j]%;
if(j-w[i]>=)(f[i][j]+=f[i-][j-w[i]])%=;
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++){
g[i][j]=f[n][j]%;
if(j-w[i]>=)(g[i][j]-=g[i][j-w[i]])%=;
}//第i个物品不选时,背包容量为j,若选i,则由g[i][j-w[i]](表示 不选i,背包有j-w[i])转移显然要减去
for(int i=;i<=n;i++){
for(int j=;j<=m;j++)
printf("%d",(g[i][j]+)%);
puts("");
}
}

[洛谷P4141] 消失之物「背包DP」的更多相关文章

  1. 洛谷P4141消失之物(背包经典题)——Chemist

    题目地址:https://www.luogu.org/problemnew/show/P4141 分析:这题当然可以直接暴力枚举去掉哪一个物品,然后每次暴力跑一遍背包,时间复杂度为O(m*n^2),显 ...

  2. 洛谷P4141 消失之物 题解 背包问题扩展

    题目链接:https://www.luogu.com.cn/problem/P4141 题目大意: 有 \(n\) 件物品,求第 \(i\) 件物品不能选的时候(\(i\) 从 \(1\) 到 \(n ...

  3. 洛谷P4141 消失之物——背包

    题目:https://www.luogu.org/problemnew/show/P4141 竟然是容斥:不选 i 物品只需减去选了 i 物品的方案: 范围原来是2*10^3而不是2*103啊... ...

  4. 洛谷P4141消失之物

    题目描述 ftiasch 有 N 个物品, 体积分别是 W1, W2, …, WN. 由于她的疏忽, 第 i 个物品丢失了. “要使用剩下的 N – 1 物品装满容积为 x 的背包,有几种方法呢?” ...

  5. luogu p4141 消失之物(背包dp+容斥原理)

    题目传送门 昨天晚上学长讲了这题,说是什么线段树分治,然后觉得不可做,但那还不是正解,然后感觉好像好难的样子. 由于什么鬼畜的分治不会好打,然后想了一下$O(nm)$的做法,想了好长时间觉得这题好像很 ...

  6. [bzoj2287]消失之物 题解(背包dp)

    2287: [POJ Challenge]消失之物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1138  Solved: 654[Submit][ ...

  7. 洛谷P1273 有线电视网 树上分组背包DP

    P1273 有线电视网 )逼着自己写DP 题意:在一棵树上选出最多的叶子节点,使得叶子节点的值 减去 各个叶子节点到根节点的消耗 >= 0: 思路: 树上分组背包DP,设dp[u][k] 表示 ...

  8. P4141 消失之物(背包)

    传送门 太珂怕了……为什么还有大佬用FFT和分治的…… 首先如果没有不取的限制的话就是一个裸的背包 然后我们考虑一下,正常的转移的话代码是下面这个样子的 ;i<=n;++i) for(int j ...

  9. 【洛谷P1417】烹调方案 贪心+背包dp

    题目大意:一共有 n 件食材,每件食材有三个属性,ai,bi和ci,如果在t时刻完成第i样食材则得到ai-t*bi的美味指数,用第i件食材做饭要花去ci的时间.众所周知,gw的厨艺不怎么样,所以他需要 ...

随机推荐

  1. 【转载】Fiddler抓包及模拟服务端

    此文章转载公众号‘云测学院'链接:https://mp.weixin.qq.com/s/qXmBDh980nBJ8IchbRGC3Q 及公众号gloryroadtrain 在HTTP接口的测试过程中, ...

  2. Python PIL 怎么知道写入图片格式的kb大小

    把图片数据写入一个IO,读这个IO的长度大小: #-*-coding:utf-8-*- from PIL import Image import io img = Image.open("1 ...

  3. 2018-10-31-win10-uwp-使用-asp-dotnet-core-做图床服务器客户端

    title author date CreateTime categories win10 uwp 使用 asp dotnet core 做图床服务器客户端 lindexi 2018-10-31 14 ...

  4. 去掉IE提示:internet explorer 已限制此网页运行脚本或Activex控件

    运行加载OCX控件的HTML文件,显示提示如下图: 解决方法是在HTML文件中添加一行注释代码,如下图: 就是红色框内的代码.即:<!-- saved from url=(0014)about: ...

  5. poj2406

    求循环节之类的问题 #include<iostream> #include<cstdio> #include<queue> #include<algorith ...

  6. Odoo Documentation : Recordsets

    Other recordset operations Recordsets are iterable(可迭代的) so the usual Python tools are available for ...

  7. noi.openjudge 二分法求函数的零点

    二分法求函数的零点 总时间限制: 1000ms 内存限制: 65536kB 描述 有函数:f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2+ 274 * x - 121 已 ...

  8. js检测到如果是手机端就跳转到手机端的网址代码

    if((/AppleWebKit.*Mobile/i.test(navigator.userAgent)||/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcat ...

  9. 在Linux下使用gcc运行C语言程序

    Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具.本教程毫不犹豫地使用GCC来编译C程序. ...

  10. DSP日志打印 LOG_printf

    LOG_printf 依托BIOS环境,需要引用下列头文件: #include <std.h> #include <log.h>     并且,要在.tcf环境中添加一个LOG ...