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

P2834 纸币问题 3

题目背景

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

注意: 本题和《进阶篇》的对应题目,输入格式略有差异。

题目描述

你有 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 取模。

输入格式

第一行两个正整数 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 种纸币的面额。

输出格式

一行一个整数,表示能恰好凑齐面额 w w w 的纸币组合数量。

输入输出样例 #1

输入 #1

6 15
1 5 10 20 50 100

输出 #1

6

输入输出样例 #2

输入 #2

3 15
1 5 11

输出 #2

5

说明/提示

对于 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 和 P2840 纸币问题 2。
考虑 dp 做法,令 dp[i] 为凑齐金额 i 的币种组合数,
状态转移方程: d p [ i ] = d p [ i − a [ j ] ] dp[i]=dp[i-a[j]] dp[i]=dp[ia[j]] a [ j ] a[j] a[j]表示第 j 种纸币。
与前两题不同,这里求的是组合数,由于组合不考虑顺序,故我们希望在更新dp——即当前子问题时已有组合中不包括当前讨论的面额。在代码中的表现即为外层遍历纸币面额,内层遍历从 1 到 w 的金额。

#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 i = 0; i < n; ++i) { // 外层遍历纸币面额for (int x = 1; x <= w; ++x) {if (a[i] <= x && dp[x - a[i]] < MOD) {dp[x] = (dp[x] + dp[x - a[i]]) % MOD;}}}cout << dp[w] << "\n";return 0;
}

相关文章:

  • 香橙派3B学习笔记10:snap打包C/C++程序与动态链接库(.so)
  • 通过一个本地存草稿的示例记录sqflite的使用
  • 国债与企业债:稳健与高收益的债券选择
  • 用Woot助力Prime Day
  • Java + Spring Boot + MyBatis 事务注解 @Transactional 使用规范说明
  • Excel文件数据的读取和处理方法——C++
  • 无需 Mac,使用Appuploader简化iOS上架流程
  • 网络安全之框架安全漏洞分析
  • DeepSpeed 是一个深度学习优化库,使分布式训练和推理变得简单、高效和有效
  • 如何将SeaTunnel MySQL-CDC与Databend 高效整合?格式与方案全解析
  • STM32单片机独立看门狗IWDG使用CubeMX配置方法
  • [docker]--解析 Docker 镜像拉取日志:状态与分层拉取逻辑
  • 【LangChain】3 模型链
  • 阿里1688 普通 231滑块 x82 分析
  • 【Python3教程】Python3基础篇之面向对象
  • 【Docker基础】Docker核心概念:镜像(Image)详解
  • 知名开源项目被收购,用户发现项目被“投毒”
  • 西安java面试总结1
  • Oracle日志体系和遇到问题后日志排查路径
  • 中位数聚合与联邦平均的原理,作用,使用到联邦学习的哪个地方,与联邦学习数据隐私的联系
  • 群晖wordpress默认地址/seo推广专员工作好做吗
  • 北京网站建设公司分享网站改版注意事项/网络优化工资一般多少
  • 邮轮哪个网站是可以做特价/网站安全
  • 大连seo快速排名/如何优化搜索引擎的搜索功能
  • 网站兼容性测试怎么做/优化师培训机构
  • 石家庄个人谁做网站/搜索引擎排名竞价