POJ2229 遞推
這題明顯遞推 但是找了好久才找出來 很明顯的是n為奇數的時候 n=n-1的偶數答案一樣
n為偶數的時候 答案為 上一個偶數是情況 +1 +1 還有n/2 的情況同一 *2 所以h[n]=h[n-2]+h[n/2]
#include <iostream> #include<cstdio> #include<cstring> using namespace std; int d[1000005]; int main() { d[1]=1; d[2]=2; for(int i=3; i<=1000000; i++) { if(i%2) d[i]=d[i-1]; else d[i]=d[i-2]+d[i/2]; if(d[i]>1000000000) d[i]%=1000000000; } int n; while(~scanf("%d",&n)) printf("%d\n",d[n]); return 0; }
最後更新:2017-04-04 07:03:27