简单的递推,类似背包那种加 1 或翻倍的思路。
写这题其实只是水一篇
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=10000005,MOD=1e9+7;
int n,f[maxn];
int main(){
scanf("%d",&n);
f[1]=1; for(int i=2;i<=n;i++) f[i]=(f[i-1]+f[i>>1]*(!(i&1)))%MOD;
printf("%d\n",f[n]);
return 0;
}
本文介绍了一种基于递推思想的简单算法实现,该算法通过加11或翻倍的方式求解问题,类似于背包问题的处理方式。代码示例中使用了C++语言,并通过具体的编程实现展示了递推算法的应用。
1095

被折叠的 条评论
为什么被折叠?



