文章
1
粉丝
65
获赞
1
访问
622
动态规划解法
dp0 的第 i 个元素表示第 i 个元素为 0 时可能数(前 i+1 个字符满足条件)
dp1 的第 i 个元素表示第 i 个元素为 1 时可能数(前 i+1 个字符满足条件)
#include<bits/stdc++.h>
using namespace std;
int compute(int n) {
if (n == 0 && n == 1) {
return 0;
}
int res = 0;
vector<int> dp0(n);
vector<int> dp1(n);
dp0[0] = 1;
dp1[0] = 1;
for (int i = 1; i < n; ++i) {
dp0[i] = dp0[i-1] + dp1[i-1];
dp1[i] = dp0[i-1];
}
return dp0[n-1] + dp1[n-1];
}
int main() {
int n;
cin >> n;
cout << compute(n) <<endl;
return 0;
}
登录后发布评论
暂无评论,来抢沙发