(上不了p站我要死了)

Description
ftiasch 有 N 个物品, 体积分别是 W1, W2, …, WN。 由于她的疏忽, 第 i 个物品丢失了。 “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” – 这是经典的问题了。她把答案记为 Count(i, x) ,想要得到所有1 <= i <= N, 1 <= x <= M的 Count(i, x) 表格。
Input
第1行:两个整数 N (1 ≤ N ≤ 2 × 103) 和 M (1 ≤ M ≤ 2 × 103),物品的数量和最大的容积。
第2行: N 个整数 W1, W2, …, WN, 物品的体积。
Output
一个 N × M 的矩阵, Count(i, x)的末位数字。
Sample Input
3 2
1 1 2
Sample Output
11
11
21
HINT
如果物品3丢失的话,只有一种方法装满容量是2的背包,即选择物品1和物品2。

如果不减去某个物品,那么这问题就很经(jian)典(dan)了。
当然,我们知道总方案数减去用i物品的方案数就是答案了。

如何求得用i物品的方案数呢?即为count(i, j-w[i])
所以count(i, j)=f( j )-count(i, j-w[i])

然后还考验一个分析能力:这个总方案数是要爆long long 的,所以要膜(不然他让你只输出末尾数字干嘛)

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int N=2000+5;int n,m,w[N],f[N],c[N][N];int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&w[i]);f[0]=1;for(int i=1;i<=n;i++){for(int j=m;j>=w[i];j--){f[j]+=f[j-w[i]];f[j]%=10;}}for(int i=1;i<=n;i++){c[i][0]=1;for(int j=1;j<=m;j++){if(j<w[i]) c[i][j]=f[j];else c[i][j]=(f[j]-c[i][j-w[i]]+10)%10;}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){printf("%d",c[i][j]%10);}printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/LinnBlanc/p/7763110.html

【bozj2287】【[POJ Challenge]消失之物】维护多值递推相关推荐

  1. BZOJ 2287 POJ Challenge 消失之物

    BZOJ题目不完整,看了看题解.发现他们都要取模10,还以为是dp的限制. 改了两小时,之后猛然发现.卧槽原本我少了一个取模. 写法1:暴力写法 最简单的想法(只要你会背包dp) 我在枚举每次不选哪个 ...

  2. BZOJ 2287 【POJ Challenge】消失之物

    2287: [POJ Challenge]消失之物 Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了. &q ...

  3. 2287. 【POJ Challenge】消失之物(数组递推\分治优化背包)

    2287. [POJ Challenge]消失之物 这题的思想和P4564 [CTSC2018]假面优化的思想一样,应该反过来说,假面那个题应该是借鉴这题的思路. 显然不能枚举每个物品消失O(n)O( ...

  4. bzoj2287【POJ Challenge】消失之物 缺一01背包

    bzoj2287[POJ Challenge]消失之物 缺一01背包 链接 bzoj 思路 分治solve(l,r,arr)表示缺少物品\([l,r]\)的dp数组arr. 然后solve(l,mid ...

  5. bzoj2295【POJ Challenge】我爱你啊*

    bzoj2295[POJ Challenge]我爱你啊 题意: 求一个字符串中有多少个"luvletter"(不包括引号).字符串长度≤100000. 题解: 连kmp都不用-- ...

  6. 角色在服务器正在维护,魔兽怀旧服:服务器再次崩溃,角色全部消失,需要维护14个小时...

    前言:怀旧服服务器因为玩家数量太多,稳定性一直是一个问题,因为服务器崩溃已经不是一次两次了,就在昨天夜里又再次发生了,并且这次更加严重.昨天晚上有熬夜的玩家,都经历了服务器的再次崩溃,所有玩家的人物角 ...

  7. 魔兽怀旧服服务器周2维护一次吗,魔兽怀旧服:服务器再次崩溃,角色全部消失,需要维护14个小时...

    原标题:魔兽怀旧服:服务器再次崩溃,角色全部消失,需要维护14个小时 前言:怀旧服服务器因为玩家数量太多,稳定性一直是一个问题,因为服务器崩溃已经不是一次两次了,就在昨天夜里又再次发生了,并且这次更加 ...

  8. 物超所值的优化mysql_CXT UNO:优化设计 物超所值

    这是"现代物流"陪您的第1205天,594篇文章 关于科尼集团 众所周知,科尼集团是技术先进的起重机专业制造商,所服务的用户范围广大,包括一般制造业和加工业.造船厂.港口和码头等多 ...

  9. POJ 2231 Moo Volume(递推、前缀和)

    题外话: POJ 2231 Moo Volume 题意: 解题过程: AC代码: 题外话: emm--第三套题好像综合了其他OJ的题目蛤,那么我就把题目分开了发了蛤蛤-- POJ 2231 Moo V ...

  10. 在移动硬盘里移动视频文件到移动硬盘 另外一个文件夹 显示正在计算_古风玩数码 篇九十六:物超所值?移动固态硬盘到底值不值?阿斯加特移动硬盘AP2上手体验_固态硬盘...

    2020-11-02 19:55:571点赞6收藏0评论 想攒一台电竞主机.家用主机.酷炫主机无从下手?想省钱又怕性能不达标?值得买帮你打造定制化DIY装机工具,自助全网比价装机,提供最适合的搭配方案 ...

最新文章

  1. linux tf命令,Linux 基础命令
  2. 【Groovy】Groovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )
  3. Spring Cloud-微服务架构集大成者
  4. 唤醒控件曾经拥有的能力
  5. 2016和2017的区别就是昨晚和今早
  6. C++ functor 仿函数
  7. linux命令-tar命令
  8. 联想高校AI精英挑战赛争霸浙江大学,“管道医生”项目晋级赛摘得桂冠
  9. 动态瑜伽 静态瑜伽 初学者_使用计算机视觉对瑜伽姿势进行评分
  10. 一个根据用户名生成头像的库——@multiavatar/multiavatar在react中的使用
  11. python--手柄遥控通讯
  12. SQLite崩溃处理
  13. 如何使用微PE工具箱制作U盘PE
  14. 为什么你的孩子拼命做题,成绩还总是上不去?
  15. 大曝光:淘宝店卖论文,10年卖100多篇SCI获利300万!
  16. PCL--学习笔记(持续更新——蜗速)
  17. 【分享】如何判断个人电脑是多少位(32位?还是64位系统)
  18. 14五规划里面的句子
  19. 【caffe】caffe结构解析(一)
  20. 服务定位器 - Caliburn.Micro 文档系列

热门文章

  1. STM32的备份寄存器和控制状态寄存器
  2. Idea安装Eslint插件详解 提示:Plugin NativeScript was not installed解决
  3. 解决Mysql安装之后没有my.ini配置文件问题
  4. js计算两个整数之间的百分比
  5. SqlServer修改sa的密码
  6. QA:mongoose中设置virtual后不工作问题
  7. VC预定义常量WIN32、_WIN32、_WIN64分析(转载)
  8. Python+Selenium+Edge浏览器安装与简单运行(1/2)
  9. C++ 预编译头文件stdafx.h
  10. matlab拟合分析画不出线,lsqcurvefit曲线拟合后,用polt函数画不出拟合的图形