leetcode 3183. 达到总和的方法数量

题目如下

数据范围

复制代码
本题是混合背包问题,但是我们可以把两个限定数量的硬币放到后面什么意思呢?
1 2 6是随便用的我们可以利用上楼梯的思想先把不用4的数量算出来随后把4和8即1个4和2个4当做0/1背包来做。

通过代码

cpp 复制代码
class Solution {
public:
    int numberOfWays(int n) {
        vector<int> dp(n + 1, 0);
        vector<int> co = {1, 2, 6};
        int mod = 1e9 + 7;
        dp[0] = 1;
        for (int i = 0; i < 3; i++) {
            for (int j = 1; j <= n; j++) {
                if(j >= co[i])
                    dp[j] = (dp[j] + dp[j - co[i]]) % mod;
                
            }
        }
        int ans = dp[n];
        if(n >= 4)ans = (ans + dp[n - 4]) % mod;
        if(n >= 8)ans = (ans + dp[n - 8]) % mod;
        return ans;
    }
};
相关推荐
Xiu Yan8 分钟前
Java 转 C++ 系列:函数对象、谓词和内建函数对象
java·开发语言·c++
lkforce11 分钟前
MiniMind学习笔记(零)--基础概念
人工智能·算法·机器学习·token·分词器·minimind·词汇表
6Hzlia12 分钟前
【Hot 100 刷题计划】 LeetCode 94. 二叉树的中序遍历 | C++ 递归法 & 迭代法
算法
nike0good16 分钟前
The 4th Universal Cup GP of Kyoto, April 4-5, 2026 题解
算法·深度优先·图论
炘爚17 分钟前
C++实现分布式集群聊天服务器
服务器·c++·分布式
见叶之秋22 分钟前
【数据结构】二叉树的遍历和节点个数
数据结构
低频电磁之道26 分钟前
C++中 explicit 用法:多参数构造函数
c++
澈2071 小时前
高效查找算法详解:从顺序到哈希
数据结构·算法·哈希算法
kobesdu1 小时前
开源3D激光SLAM算法的异同点、优劣势与适配场景总结
算法·3d·机器人·ros
czxyvX1 小时前
2-Qt信号与槽
c++·qt