背包问题求方案数(二)

简介: AcWing算法提高课内容,本文讲解 动态规划

货币系统

题目要求

题目描述:

给你一个 n 种面值的货币系统,求组成面值为 m  的货币有多少种方案。

输入格式:

第一行,包含两个整数 n  和 m 。

接下来 n 行,每行包含一个整数,表示一种货币的面值。

输出格式:

共一行,包含一个整数,表示方案数。

数据范围:

n15,m3000

输入样例:

3 10
1
2
5

输出样例:

10

思路分析

f[i]代表恰好用了 i元钱的时候的方案数,注意本题会爆 i n t,需要开longlong

代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long LL;
const int N = 3010;
LL f[N];
int main()
{
    int n, m;
    cin >> n >> m;
    f[0] = 1;
    for (int i = 1; i <= n; i ++ )
    {
        int w;
        cin >> w;        
        for (int j = w; j <= m; j ++ )
            f[j] += f[j - w];
    }
    cout << f[m] << endl;
    return 0;
}

货币系统

题目要求

题目描述:

image.png

输入格式:

image.png

输出格式:

输出文件共有 T 行,对于每组数据,输出一行一个正整数,表示所有与 ( n , a )等价的货币系统 ( m , b )  中,最小的 m 。

数据范围:

1n100,

1a[i]25000,

1T20

输入样例:

2 
4 
3 19 10 6 
5 
11 29 13 19 17 

输出样例:

2
5

思路分析

image.png

代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 25010;
int w[N];
int f[N];
int main()
{
    int T;
    cin >> T;
    while (T -- )
    {
        int n;
        cin >> n;
        for (int i = 1; i <= n; i ++ ) cin >> w[i];
        sort(w + 1, w + n + 1);
        memset(f, 0, sizeof f);
        f[0] = 1;
        int m = w[n];
        int res = 0;
        for (int i = 1; i <= n; i ++ )
        {
            if (!f[w[i]]) res ++;
            for (int j = w[i]; j <= m; j ++ )
                f[j] += f[j - w[i]];
        }
        cout << res << endl;
    }
    return 0;
}





目录
相关文章
|
小程序 数据安全/隐私保护 开发者
【已解决】开发者扫码登录提示“需要验证小程序密码”
开发者扫码登录提示“需要验证小程序密码”
1076 0
【已解决】开发者扫码登录提示“需要验证小程序密码”
|
10月前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
632 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
11月前
|
机器学习/深度学习 测试技术
专家模型不要专家并行!微软开源MoE新路径
微软研究团队提出了一种名为“GRIN(GRadient-INformed MoE training)”的新型训练方法,针对专家混合(MoE)模型优化难题。MoE通过稀疏计算提高效率,但传统梯度优化难以直接应用。GRIN利用梯度信息指导专家路由,引入稀疏梯度估计和并行配置,克服了这一局限,显著提升了MoE模型的训练效率和性能。实验表明,GRIN在语言建模等任务上超越了密集模型,并在多个基准测试中取得领先。尽管存在计算复杂度高等挑战,GRIN为MoE模型训练提供了新思路。论文地址:https://arxiv.org/abs/2409.12136
272 24
|
11月前
|
Dart 前端开发 容器
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
368 18
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
开发框架 监控 物联网
【Uniapp 专栏】探索 Uniapp 开发的更高级应用场景
【5月更文挑战第17天】Uniapp作为跨平台开发框架,在物联网、实时数据监控、企业级应用、地理定位和教育、电商领域展现出广泛应用潜力。通过蓝牙连接智能家居,实时展示数据变化,构建复杂业务流程,定位服务及互动学习平台,它提供了创新解决方案。随着技术发展,Uniapp将继续为开发者创造更多机遇和挑战,推动移动应用领域的前进。
464 0
【Uniapp 专栏】探索 Uniapp 开发的更高级应用场景
|
SQL 数据采集 数据可视化
Pandas 数据结构 - DataFrame
10月更文挑战第26天
678 2
Pandas 数据结构 - DataFrame
|
机器学习/深度学习 监控 算法
目标检测算法的优缺点及适用场景
目标检测算法的优缺点及适用场景
954 0
|
弹性计算 人工智能 运维
60分钟深度测评阿里云基于大模型构建的操作系统智能助手
OS Copilot 概要 OS Copilot 是阿里巴巴云针对Linux操作系统开发的智能助手,集成在Alibaba Cloud Linux中,利用大模型技术提供自然语言问答、命令行辅助、阿里云CLI调用和系统运维功能。它尤其适合新手,直观的交互方式提升效率。此外,OS Copilot支持在操作系统内直接管理阿里云资源,简化运维任务。目前,该助手仅在特定版本的Alibaba Cloud Linux上可用。体验者可以通过提供的链接和指南进行实操,体验其功能,如命令行的自然语言交互和环境变量配置。OS Copilot在提高用户体验和工作流集成方面的创新,预示着未来AI在操作系统中的广泛应用。
|
存储 人工智能 关系型数据库
PolarDB 与 AI/ML 集成的应用案例
【8月更文第27天】随着大数据和人工智能技术的发展,越来越多的企业开始探索将关系型数据库与 AI/ML 技术相结合的方式,以提高数据分析效率和业务智能化水平。阿里云的 PolarDB 是一款高性能的关系型数据库服务,支持多种数据库引擎,如 MySQL、PostgreSQL 和 Oracle。通过与阿里云的其他 AI/ML 服务集成,PolarDB 能够为企业提供端到端的数据处理和分析解决方案。
479 0