這題今年的時候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級開始走樓梯...