組合數學 51Nod 1149 Pi的遞推式

2021-09-02 18:38:26 字數 778 閱讀 4909

傳送門 f(i

)f(i)

f(i)

可以理解成從數軸上位置i

ii出發每次向左走1

11或pipi

pi個單位,使最終位置剛好小於4

44的方案數,列舉走了多少個1

11,判斷一下最後剩下的如果≥

3\ge3

≥3就可以走1

11,否則只能走pipi

pi

#include

#include

#include

#include

#include

#define maxn 1000005

#define ll long long

using

namespace std;

int n,fac[maxn]

,inv[maxn]

;ll ans;

const

int mod=

1e9+7;

const

double pi=

acos(-

1.0)

;inline

intqpow

(int x,

int k)

return ret;

}inline ll c

(int n,

int m)

intmain()

printf

("%lld\n"

,ans)

;return0;

}

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