51nod 1149 Pi的遞推式

2021-08-14 04:44:27 字數 868 閱讀 4635

這題今年的時候liao在省選前給我們比賽的一道題。。

當時完全不會啊。。表示四題暴力分都沒有拿完

問題可以轉換為,我們可以隨意地加1或加

π ,問你有多少種方案可以加到(n

−4,n

]這樣的話,明顯就是可以排列組合的

但是邊界一定要想清楚,因為你最後乙個加0或者加

π ,是完全不一樣的

所以我們可以分開做

先做一種情況是加0的,另一種是加

π的,這樣子就好弄一點

code:

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const ll mod=1e9+7;

const ll n=1000005;

const

double pi=acos(-1);

ll n;

ll ny[n];

ll jc[n],jc[n];

ll c (ll x,ll y)//在x裡面選y個

int main()

if (n<4)

n-=4;

ll ans=0;

for (ll u=0;u<=(int)(n/pi);u++)//用了多少個π,最後是填1進去的

for (ll u=0;u<=n;u++)//用了多少個1,最後填pi

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

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級開始走樓梯...