文章
5
粉丝
65
获赞
1
访问
4.7k
本题题意看似很难摸着头脑,实则这是一道斐波那契数列题的换皮。
根据题意可以自行推算
当n=1时,组合只有0 结果是1
当n=2时,组合:00 1 结果是2
当n=3时,组合:000 10 01 结果是3
当n=4时,组合:0000 100 010 001 11 结果是5
当n=5时,组合:00000 10000 01000 …… 结果是8
因此不难发现这是一个斐波那契数列,只需要使用最简单的dp动态规划即可解决
#include <bits/stdc++.h>
using namespace std;
#define MOD 2333333;
int main() {
int n;
while (cin >> n) {
int dp[n + 1];
dp[0] = 1, dp[1] = 1;
for (int i = 2; i <= n; i++) {
dp[i] = (dp[i - 1] + dp[i - 2]) % MOD;
}
cout << dp[n] << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发