51NOD 1149 Pi的遞推式

2021-07-24 08:51:21 字數 927 閱讀 3938

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級開始走樓梯,一次可以走1或2級,問走到第i級的方案數(1,2與2,1視為不同),

所以這道題也差不多,只是有乙個小數罷了,

可以列舉走幾個pi,算出走幾個1,用c公式搞一波即可,

複雜度:o(

n)

#include 

#include

#include

#define fo(i,a,b) for(int i=a;i<=b;i++)

#define fod(i,a,b) for(int i=a;i>=b;i--)

using namespace std;

typedef long long ll;

typedef double db;

const int n=1e6+50,mo=1e9+7;

int n;

ll ans;

ll jc[n*2],jcn[n*2];

db pi=3.141592653589793238462643383;

ll ksm(ll q,ll w)

return ans;

}ll c(int

m,int n)

int main()

printf("%lld\n",ans);

return

0;}

51nod1149 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的結果即可。n 1000000 乙個很好的思路。這樣的遞推過程可以看成乙個dag,求編號為n的點到編號為的點到的路徑總數。首先對最後一步...

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的遞推式

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 輸...