1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

本题等价于有限次硬币找零(组合数):给出若干奖品价值(可有重复),每个出现的奖品只能使用一次;若某价值出现多次,则该价值可使用的数量等于其出现次数。我们要统计不计顺序、总价值恰为 num 的组合个数。

做法:

  1. 先将 values 压缩为「价值 -> 频次」的映射,例如 4 出现 2 次表示面值 4 的“硬币”有 2 个。
  2. 使用二维计数 DP(组合型): 设 dp[s] 表示处理完若干种价值后,凑出和为 s 的组合数。对每一种价值 v(可用 cnt 次),转移:

P4234.第1题-奖品兑换组合

    1000ms Tried: 1378 Accepted: 278 Difficulty: 4 所属公司 : 华为
    算法与标签>动态规划

题目内容

游乐场通过进行游戏获取游戏币,游戏币可以用来兑换奖品,每个奖品价值不同的游戏币数量。可兑换的奖品列表通过数组 valuesvaluesvalues 给出,其中 values[i]values[i]values[i] 表示兑换第 iii 个奖品价值的游戏币数量,价值相同则记为同一奖品。给出获取的游戏币数量 numnumnum ,请计算刚好价值 numnumnum 个游戏币的奖品组合的个数,如果不存在价值 numnumnum 个游戏币的奖品组合,则返回 000 。

输入描述

第一行:正整数 lenlenlen ,表示奖品列表 valuesvaluesvalues 长度,1<=len<=1001<=len<=1001<=len<=100 ;

第二行:正整数数组 valuesvaluesvalues ,长度为 lenlenlen ,values[i]values[i]values[i] 表示第 iii 个奖品价值的游戏币数量,1<=values[i]<=1001 <=values[i]<=1001<=values[i]<=100 ;

第三行:正整数 numnumnum ,表示获取的游戏币数量,0<=num<=1000<=num<=1000<=num<=100 .

输出描述

整数,代表本次可以兑换的奖品组台数量

样例1

输入

3
3 3 3
4

输出

0

说明

无可以兑换的奖品组合,输出 000

样例2

输入

8
2 5 4 5 3 7 1 4
8

输出

5

说明

可以兑换的奖品组合为: [[[

[2,5,1][2 ,5,1][2,5,1]

[5,3][5,3][5,3]

[4,4][4,4][4,4]

[4,3,1][4,3,1][4,3,1]

[7,1][7,1][7,1]

]]]

输出组合数量 555

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 46ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?