当前位置: 首页 > ai >正文

P2840 纸币问题 2

题目背景

你是一个非常有钱的小朋友。

题目描述

你有 n n n 种面额互不相同的纸币,第 i i i 种纸币的面额为 a i a_i ai 并且有无限张,现在你需要支付 w w w 的金额,求问有多少种方式可以支付面额 w w w,答案对 10 9 + 7 10^9+7 109+7 取模。
注意在这里,同样的纸币组合如果支付顺序不同,会被视作不同的方式。例如支付 3 3 3 元,使用一张面值 1 1 1 的纸币和一张面值 2 2 2 的纸币会产生两种方式( 1 + 2 1+2 1+2 2 + 1 2+1 2+1)。

输入格式

第一行两个正整数 n , w n,w n,w,分别表示纸币的种数和要凑出的金额。
第二行一行 n n n 个以空格隔开的正整数 a 1 , a 2 , … a n a_1, a_2, \dots a_n a1,a2,an 依次表示这 n n n 种纸币的面额。

输出格式

一行一个整数,表示支付方式的数量。

输入输出样例 #1

输入 #1

6 15
1 5 10 20 50 100

输出 #1

42

输入输出样例 #2

输入 #2

3 15
1 5 11

输出 #2

39

说明/提示

对于 40 % 40\% 40% 的数据,满足 n ≤ 10 n\le 10 n10 w ≤ 100 w\le 100 w100
对于 100 % 100\% 100% 的数据,满足 1 ≤ n ≤ 10 3 1\le n\le 10^3 1n103 1 ≤ a i ≤ w ≤ 10 4 1\le a_i \le w\le 10^4 1aiw104

其实小朋友并不有钱。

同 P2842 纸币问题1,考虑dp做法。
dp[i] 表示凑出金额 i 的方案数
转移方程为 d p [ i ] = ( d p [ i ] + d p [ i − a [ j ] ] ) % 1 e 9 − 7 dp[i]=(dp[i]+dp[i-a[j]])\%1e9-7 dp[i]=(dp[i]+dp[ia[j]])%1e97,其中 a[j] 表示第 j 种纸币
对于从 1 到 w 的每个金额,枚举每种纸币 a[j] ,更新 dp[i]:

#include <bits/stdc++.h>
using namespace std;int main() {int n, w;cin >> n >> w;vector<int> a(n);for (int i = 0; i < n; ++i) {cin >> a[i];}const int MOD = 1e9+7;vector<int> dp(w + 1, 0);dp[0] = 1;for (int x = 1; x <= w; ++x) {for (int i = 0; i < n; ++i) {if (a[i] <= x && dp[x - a[i]] < MOD) {dp[x] = (dp[x] + dp[x - a[i]]) % MOD;}}}cout << dp[w] << "\n";return 0;
}
http://www.xdnf.cn/news/13538.html

相关文章:

  • 华为OD机考-数字螺旋矩阵(JAVA 2025B卷)
  • Python前端系列(三)
  • DATABASE 结构迁移实战手册:脚本生成、分类与部署全流程详解
  • 华为云Flexus+DeepSeek征文|华为云CCE容器高可用部署Dify LLM应用后的资源释放指南
  • 掌握Linux进程替换:从原理到实战(自定义shell)
  • 笔试模拟day1
  • 随记 使用certbot申请ssl证书
  • 跨域的本质与实战:从理论到松鼠短视频系统的演进-优雅草卓伊凡|卢健bigniu
  • 数据库游标:逐行处理数据的“手术刀”——从原理到实战的深度解析
  • 开关电源-KA3842A芯片的电路分析
  • CSS“多列布局”
  • 电池充放电容量检测:能否精准锁定电池真实性能?
  • PSCAD closed loop buck converter
  • 打卡day51
  • CMake安装教程
  • 2025GEO供应商排名深度解析:源易信息构建AI生态优势
  • 新德通:光通信领域的硬核力量,引领高速互联新时代
  • Appium + Node.js 测试全流程
  • 最接近的三数之和
  • Java 基础知识填空题(共 10 题)
  • 6.ref创建对象类型的响应式数据
  • FPGA实现VESA DSC编码功能
  • 【游戏项目】大型项目Git分支策略与开发流程设计构想
  • 无人机智能运行系统技术解析
  • 为进行性核上性麻痹患者定制:饮食健康指南
  • 全球首个体重管理AI大模型“减单”发布,学AI大模型来近屿智能
  • CMake指令: add_sub_directory以及工作流程
  • 速盾:高防CDN可以加速数据库吗?
  • ​​5G通信设备线路板打样:猎板PCB如何攻克高速数据传输技术瓶颈​​
  • bat 批处理查看文件年龄