多组背包恰好装满方案数

链接:登录---专业IT笔试面试备考平台_牛客网

来源:牛客网

现在有一个大小n*1的收纳盒,我们手里有无数个大小为1*1和2*1的小方块,我们需要用这些方块填满收纳盒,请问我们有多少种不同的方法填满这个收纳盒


分析:

物品可以添加无数次,所以第二层循环放物体,初始化,装满0空间背包的方案数为1,即不装


复制代码
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
void solve()
{
   ll a[]={1,2};
   ll n;
   cin>>n;
   ll dp[n+1];
    memset(dp,0,sizeof dp);
   dp[0]=1;
   for(ll i=1;i<=n;i++)
   {
       for(ll j=0;j<=1;j++)
       {
           if(i>=a[j])
           dp[i]+=dp[i-a[j]];
       }
   }
    cout<<dp[n]<<'\n';
}
    int main()
   {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll t=1;
    cin>>t;
    while(t--)
    solve();
    return 0;
    }
相关推荐
独望漫天星辰1 小时前
C++ 多态深度解析:从语法规则到底层实现(附实战验证代码)
开发语言·c++
We་ct1 小时前
LeetCode 56. 合并区间:区间重叠问题的核心解法与代码解析
前端·算法·leetcode·typescript
Lionel6891 小时前
分步实现 Flutter 鸿蒙轮播图核心功能(搜索框 + 指示灯)
算法·图搜索算法
小妖6661 小时前
js 实现快速排序算法
数据结构·算法·排序算法
xsyaaaan1 小时前
代码随想录Day30动态规划:背包问题二维_背包问题一维_416分割等和子集
算法·动态规划
王老师青少年编程2 小时前
2024年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)
c++·题解·真题·csp·信奥赛·csp-s·提高组
凡人叶枫2 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
CSDN_RTKLIB2 小时前
使用三方库头文件未使用导出符号情景
c++
zheyutao2 小时前
字符串哈希
算法
A尘埃2 小时前
保险公司车险理赔欺诈检测(随机森林)
算法·随机森林·机器学习