多组背包恰好装满方案数

链接:登录---专业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;
    }
相关推荐
fashion 道格几秒前
用 C 语言破解汉诺塔难题:递归思想的实战演练
c语言·算法
李玮豪Jimmy3 分钟前
Day18:二叉树part8(669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树)
java·服务器·算法
Zero不爱吃饭8 分钟前
环形链表(C)
数据结构·链表
xiaoye-duck9 分钟前
数据结构之二叉树-链式结构(下)
数据结构·算法
Kt&Rs11 分钟前
11.13 LeetCode 题目汇总与解题思路
数据结构·算法
大锦终11 分钟前
【Linux】高级IO
linux·服务器·网络·c++
灵晔君20 分钟前
C++标准模板库(STL)——list的使用
c++·list
努力学习的小廉36 分钟前
我爱学算法之—— 字符串
c++·算法
yuuki2332331 小时前
【数据结构】常见时间复杂度以及空间复杂度
c语言·数据结构·后端·算法
闻缺陷则喜何志丹1 小时前
【分块 差分数组 逆元】3655区间乘法查询后的异或 II|2454
c++·算法·leetcode·分块·差分数组·逆元