当前位置:首页 > C++目录 > 正文内容

【题解】玩具

亿万年的星光1年前 (2024-12-28)C++目录936

【题目描述】

商店正在出售蒜头君最喜欢的系列玩具,在接下来的 " 周中,每周会出售其中的一款,同一款玩具不会重复出现。由于是蒜头君最喜欢的系列,他希望尽可能多地购买这些玩具,但是同一款玩具蒜头君只会购买一个。同时,蒜头君的预算只有元,因此他无法将每一款都纳入囊中。此外,蒜头君不能连续两周都购买玩具,否则他会陷入愧疚。现在蒜头君想知道,他最多可以买多少款不同的玩具呢?

【输入格式】

输入共2行:

第一行两个正整数几和 m,中间用一个空格隔开;

第二行共几个正整数,第i个正整数表示第:周出售的玩具的价格

【输出格式】

输出文件只有一行,包含一个整数,表示蒜头君最多能买多少款不同的玩具,

【数据范围】

对于 30%的数据,n< 10,m< 100;

对于 60%的数据,n< 100,m< 1000;

对于 100% 的数据,n< 1000,m< 50000,单个玩具的价格< 1000。

------------------------------

【题目分析】

很显然,这个题目是一个背包问题,我们设置 dp 数组为 dp|ij],表示第i周预算为j的最多可以买多少款不同的玩具。

通过转移方程 dp[i][j]= max(dp[i-1][j],dp[i-2][j-a[i]]+ 1);和 dp[i][j|= dp[i- 1][j]; 进行转移即可。


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

指针(二):指针与数组

1.指针与数组的关系    指向数组的指针变量称为数组指针变量。“数组是内存上一块连续的空间”。数组名就是这块连续空间的首地址。2.指针指向数组  &...

CSP-J2021年普及组复赛T4——小熊的果篮

【题目描述】    小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依 次用正整数 1、2、3、……、n 编号。连续排在一起的同一种...

C++ 中的常量

C++ 中的常量

一、说明常量和变量是相对的概念 —— 变量是 “能变化的量”,而常量就是一旦定义就固定不变、不能修改的值。用生活里的例子类比,你就能秒懂为什么需要常量:本质是 “给固定不变的东西贴‘只读标签’,避免误...

如何判断回文数/回文串

所谓回文,就是从左往右读和从右往左读都是一样的,这样的数字或者字符称为回文数/回文字符。做题的时候经常能看到判断回文操作。判断回文的一般有两种,一种是数字类型,一种是字符类型。两种分别介绍一下。一、回...

常见的数据范围

一、总结名称字节位数(二进制)最小值最大值位数(十进制)bool18011char18shrot 216    (-2^15  到2^15  -1)-...

【数据结构】队列—基本操作

【数据结构】队列—基本操作

一、C++实例分析       C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容...