题目描述

ftiasch 有 N 个物品, 体积分别是 W1, W2, …, WN。 由于她的疏忽, 第 i 个物品丢失了。 “要使用剩下的 N – 1 物品装满容积为 x 的背包,有几种方法呢?” — 这是经典的问题了。她把答案记为 Count(i, x) ,想要得到所有1 <= i <= N, 1 <= x <= M的 Count(i, x) 表格。

输入格式

第1行:两个整数 N (1 ≤ N ≤ 2 × 10^3)N(1≤N≤2×103) 和 M (1 ≤ M ≤ 2 × 10^3)M(1≤M≤2×103),物品的数量和最大的容积。

第2行: N 个整数 W1, W2, …, WN, 物品的体积。

输出格式

一个 N × M 的矩阵, Count(i, x)的末位数字。

输入输出样例

输入 #1复制

  1. 3 2
  2. 1 1 2
输出 #1复制

  1. 11
  2. 11
  3. 21

说明/提示

如果物品3丢失的话,只有一种方法装满容量是2的背包,即选择物品1和物品2。

题面如上。

看完会很自然地发现它是一个dp(计算方案数)

然后,如果不是漏一个的话,会非常简单(选或不选,硬算),方程式也简单得很,我这种弱鸡都能一眼看出来。

考虑一下删一个元素该怎么办。。。

首先,我们可以想到,它可能是从满的里面删掉那个物品。

经过漫长的思考,得到了以下方程式:

意思是:如果可以删的话,达到j重量不选a[i],那我们就把选它的方案数给删去,

于是还需要处理以下全选的情况,

所以这题就没有了吧。。

坑点:

1、本题的输出非常玄学,得换连续输出两个数再换一次行,直接暴毙

2、蒟蒻看了半天没看出来要取模,最后发现是末位数字啊!!对10取模。

应该就是这样了。

代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=;
  4. int n,m;
  5. int a[maxn];
  6. int dp[maxn][];//µ½´ïj´óСʱµÄ·½°¸Êý
  7.  
  8. int main()
  9. {
  10. scanf("%d%d",&n,&m);
  11. for(int i=;i<=n;i++)
  12. {
  13. scanf("%d",&a[i]);
  14. }
  15. dp[][]=dp[][]=;
  16. for(int i=;i<=n;i++)
  17. {
  18. for(int j=m;j>=a[i];j--)
  19. {
  20. dp[j][]+=dp[j-a[i]][];
  21. dp[j][]%=;
  22. }
  23. }
  24. for(int i=;i<=n;i++)
  25. {
  26. for(int j=;j<=m;j++)
  27. {
  28. if(j-a[i]>=)
  29. dp[j][]=(dp[j][]-dp[j-a[i]][]+)%;
  30. else
  31. dp[j][]=dp[j][]%;
  32. printf("%d",dp[j][]);
  33. }
  34. cout<<endl;
  35. }
  36. return ;
  37. }

(完)

p4141(消失之物)的更多相关文章

  1. P4141 消失之物

    目录 链接 思路 代码 链接 P4141 消失之物 思路 f[N];//表示删掉物品后能出现容积为i的方案数 a[N];//单纯0-1背包的方案数asd 那么就先求出a[i]来,然后转移就是 if(j ...

  2. [BZOJ 2287/POJ openjudge1009/Luogu P4141] 消失之物

    题面: 传送门:http://poj.openjudge.cn/practice/1009/ Solution DP+DP 首先,我们可以很轻松地求出所有物品都要的情况下的选择方案数,一个简单的满背包 ...

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

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

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

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

  5. [洛谷P4141] 消失之物「背包DP」

    暴力:暴力枚举少了哪个,下面套一个01背包 f[i][j]表示到了i物品,用了j容量的背包时的方案数,f[i][j]=f[i-1][j]+f[i-1][j-w[i]]O(n^3) 优化:不考虑消失的, ...

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

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

  7. 洛谷P4141消失之物

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

  8. P4141 消失之物(背包)

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

  9. Luogu P4141 消失之物 背包 分治

    题意:给出$n$个物品的体积和最大背包容量$m$,求去掉一个物品$i$后,装满体积为$w\in [1,m]$背包的方案数. 有 N 个物品, 体积分别是 W1, W2, …, WN. 由于她的疏忽, ...

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

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

随机推荐

  1. @DateTimeFormat注解

    @DateTimeFormat在spring-context依赖下,所在包如下 当form表单中出现时间字段需要跟pojo对象中的成员变量进行数据绑定时,springmvc框架中的时间数据无法自动绑定 ...

  2. Elasticsearch Java API 很全的整理

    Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...

  3. 高性能Web动画和渲染原理系列(2)——渲染管线和CPU渲染

    目录 一. 高性能动画 二. 像素渲染管线 基本渲染流程 回流和重绘 三. 旧软件渲染 渲染对象(RenderObject) 渲染层(RenderLayer) 四. 从canvas体会分层优势 不分层 ...

  4. TensorFlow2.0(8):误差计算——损失函数总结

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  5. CVE-2016-7124漏洞复现

    CVE-2016-7124漏洞复现 __wakeup()魔术方法绕过 实验环境 操作机:Windows 10 服务器:apache 2.4 数据库:mysql 5.0 PHP版本:5.5 漏洞影响版本 ...

  6. std::this_thread::yield/sleep_for

    std::this_thread::yield(): 当前线程放弃执行,操作系统调度另一线程继续执行.. std::this_thread::sleep_for(): 表示当前线程休眠一段时间,休眠期 ...

  7. myeclipse 在web-inf/lib中导入包

    今天用myeclipse的时候发现无法在web-inf/lib导入包,如果直接在工程上导入,则进入了一个referenced libraries的文件夹里,而web-inf/lib里面是没有jar包的 ...

  8. 将 so|JNI|NDK 之间的关系说明白

    最近在了解公司历史的发展,发现了公司产品中几乎都要使用 so 文件,不禁好奇这个 so 到底是何方神圣. so 文件 so 是 shared object 的缩写,见名思义就是共享的对象,机器可以直接 ...

  9. ios 11 系统CPU过高,xib中textfield使用导致出过高

    ios11 发布之后,作为开发肯定是第一时间进行了升级测试,全新的系统不免会带来这样那样的问题.项目中使用xib的小伙伴们会发现,项目的cpu使用率非常高,尤其是初始化的时候,并没有线程的操作,CPU ...

  10. 如何使用代理IP进行数据抓取,PHP爬虫抓取亚马逊商品数据

    什么是代理?什么情况下会用到代理IP? 代理服务器(Proxy Server),其功能就是代用户去取得网络信息,然后返回给用户.形象的说:它是网络信息的中转站.通过代理IP访问目标站,可以隐藏用户的真 ...