【bozj2287】【[POJ Challenge]消失之物】维护多值递推
(上不了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]消失之物】维护多值递推相关推荐
- BZOJ 2287 POJ Challenge 消失之物
BZOJ题目不完整,看了看题解.发现他们都要取模10,还以为是dp的限制. 改了两小时,之后猛然发现.卧槽原本我少了一个取模. 写法1:暴力写法 最简单的想法(只要你会背包dp) 我在枚举每次不选哪个 ...
- BZOJ 2287 【POJ Challenge】消失之物
2287: [POJ Challenge]消失之物 Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了. &q ...
- 2287. 【POJ Challenge】消失之物(数组递推\分治优化背包)
2287. [POJ Challenge]消失之物 这题的思想和P4564 [CTSC2018]假面优化的思想一样,应该反过来说,假面那个题应该是借鉴这题的思路. 显然不能枚举每个物品消失O(n)O( ...
- bzoj2287【POJ Challenge】消失之物 缺一01背包
bzoj2287[POJ Challenge]消失之物 缺一01背包 链接 bzoj 思路 分治solve(l,r,arr)表示缺少物品\([l,r]\)的dp数组arr. 然后solve(l,mid ...
- bzoj2295【POJ Challenge】我爱你啊*
bzoj2295[POJ Challenge]我爱你啊 题意: 求一个字符串中有多少个"luvletter"(不包括引号).字符串长度≤100000. 题解: 连kmp都不用-- ...
- 角色在服务器正在维护,魔兽怀旧服:服务器再次崩溃,角色全部消失,需要维护14个小时...
前言:怀旧服服务器因为玩家数量太多,稳定性一直是一个问题,因为服务器崩溃已经不是一次两次了,就在昨天夜里又再次发生了,并且这次更加严重.昨天晚上有熬夜的玩家,都经历了服务器的再次崩溃,所有玩家的人物角 ...
- 魔兽怀旧服服务器周2维护一次吗,魔兽怀旧服:服务器再次崩溃,角色全部消失,需要维护14个小时...
原标题:魔兽怀旧服:服务器再次崩溃,角色全部消失,需要维护14个小时 前言:怀旧服服务器因为玩家数量太多,稳定性一直是一个问题,因为服务器崩溃已经不是一次两次了,就在昨天夜里又再次发生了,并且这次更加 ...
- 物超所值的优化mysql_CXT UNO:优化设计 物超所值
这是"现代物流"陪您的第1205天,594篇文章 关于科尼集团 众所周知,科尼集团是技术先进的起重机专业制造商,所服务的用户范围广大,包括一般制造业和加工业.造船厂.港口和码头等多 ...
- POJ 2231 Moo Volume(递推、前缀和)
题外话: POJ 2231 Moo Volume 题意: 解题过程: AC代码: 题外话: emm--第三套题好像综合了其他OJ的题目蛤,那么我就把题目分开了发了蛤蛤-- POJ 2231 Moo V ...
- 在移动硬盘里移动视频文件到移动硬盘 另外一个文件夹 显示正在计算_古风玩数码 篇九十六:物超所值?移动固态硬盘到底值不值?阿斯加特移动硬盘AP2上手体验_固态硬盘...
2020-11-02 19:55:571点赞6收藏0评论 想攒一台电竞主机.家用主机.酷炫主机无从下手?想省钱又怕性能不达标?值得买帮你打造定制化DIY装机工具,自助全网比价装机,提供最适合的搭配方案 ...
最新文章
- linux tf命令,Linux 基础命令
- 【Groovy】Groovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )
- Spring Cloud-微服务架构集大成者
- 唤醒控件曾经拥有的能力
- 2016和2017的区别就是昨晚和今早
- C++ functor 仿函数
- linux命令-tar命令
- 联想高校AI精英挑战赛争霸浙江大学,“管道医生”项目晋级赛摘得桂冠
- 动态瑜伽 静态瑜伽 初学者_使用计算机视觉对瑜伽姿势进行评分
- 一个根据用户名生成头像的库——@multiavatar/multiavatar在react中的使用
- python--手柄遥控通讯
- SQLite崩溃处理
- 如何使用微PE工具箱制作U盘PE
- 为什么你的孩子拼命做题,成绩还总是上不去?
- 大曝光:淘宝店卖论文,10年卖100多篇SCI获利300万!
- PCL--学习笔记(持续更新——蜗速)
- 【分享】如何判断个人电脑是多少位(32位?还是64位系统)
- 14五规划里面的句子
- 【caffe】caffe结构解析(一)
- 服务定位器 - Caliburn.Micro 文档系列
热门文章
- STM32的备份寄存器和控制状态寄存器
- Idea安装Eslint插件详解 提示:Plugin NativeScript was not installed解决
- 解决Mysql安装之后没有my.ini配置文件问题
- js计算两个整数之间的百分比
- SqlServer修改sa的密码
- QA:mongoose中设置virtual后不工作问题
- VC预定义常量WIN32、_WIN32、_WIN64分析(转载)
- Python+Selenium+Edge浏览器安装与简单运行(1/2)
- C++ 预编译头文件stdafx.h
- matlab拟合分析画不出线,lsqcurvefit曲线拟合后,用polt函数画不出拟合的图形