##简单dp
title:
链接:https://ac.nowcoder.com/acm/problem/14975
来源:牛客网
现在有一个大小n1的收纳盒,我们手里有无数个大小为11和2*1的小方块,我们需要用这些方块填满收纳盒,请问我们有多少种不同的方法填满这个收纳盒
输入描述:
第一行是样例数T
第2到2+T-1行每行有一个整数n(n<=80),描述每个样例中的n。
输出描述:
对于每个样例输出对应的方法数
示例:
输入
3
1
2
4
输出
1
2
5
题目分析:题目不难,思路就是dp[i]=dp[i-1]+dp[i-2]。
#include<iostream>
using namespace std;
int main()
{
int t;
cin >> t;
long long dp[81]={0};
dp[1]=1;dp[2]=2;
for(int i=3;i<81;i++) dp[i]=dp[i-1]+dp[i-2];
while(t--)
{
int n;
cin >> n;
cout << dp[n] << endl;
}
return 0;
}
对于动态规划专题一直不是很理解,关键还是得刷题,当然首先得要理解这种思路,刷题写代码只是为了巩固、加深自己的理解。