f(x) = 1 (0 <= x < 4)
f(n) = f(n - 1) + f(n - pi) (4 <= x)
pi = 3.1415926535…..
現在給出乙個n,求f(n)。由於結果巨大,只輸出mod 10^9 + 7的結果即可。
n≤1000000
乙個很好的思路。
這樣的遞推過程可以看成乙個dag,求編號為n的點到編號為的點到的路徑總數。
首先對最後一步分類討論:-1或是-pi,然後再列舉-pi的次數,把組合數加起來。
時間複雜度o(n)
#include
#include
#include
#include
using namespace std;
const int maxn=1e6+5,mo=1e9+7;
const double pi=acos(-1);
typedef long long ll;
int n,fac[maxn],inv[maxn],inv[maxn],ans;
int c(int n,int
m)int main()
fac[0]=inv[0]=fac[1]=inv[1]=inv[1]=1;
for (int i=2;i<=n;i++)
for (int i=0;n-i*pi>=4;i++)
for (int i=0;n-i>=4;i++)
printf("%d\n",ans);
return
0;}
51nod 1149 Pi的遞推式
f x 當0 x 4時等於1,x 4時等於f x 1 f x pi 求f n n 4就輸出一,接下來只討論n 4的情況 根據觀察遞推式,我們可以轉化問題 給你乙個n,每次可以減一或減pi,直至減到小於4,求方案數。減看起來不直觀,改為加 從乙個0開始,每次加1或加pi,直至加到與n相差在4以內,求方...
51NOD 1149 Pi的遞推式
f x 1 0 x 4 f n f n 1 f n pi 4 x pi 3.1415926535 現在給出乙個n,求f n 由於結果巨大,只輸出mod 10 9 7的結果即可。我們先來想一下斐波拉切數列的遞推式 fi fi 1 fi 2 f 0 1,f1 1 我們發現,問題等價於問從第0級開始走樓梯...
51nod 1149 Pi的遞推式
1149 pi的遞推式 基準時間限制 1 秒 空間限制 131072 kb 分值 640 難度 8級演算法題 f x 1 0 x 4 f x f x 1 f x pi 4 x pi 3.1415926535.現在給出乙個n,求f n 由於結果巨大,只輸出mod 10 9 7的結果即可。input 輸...