jzoj3461-小麦亩产一千八【斐波那契数列】
生活随笔
收集整理的這篇文章主要介紹了
jzoj3461-小麦亩产一千八【斐波那契数列】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
正題
大意
第零個(gè)格1個(gè),第一格有p個(gè),之后第i格就是第i-1格加i-2格。知道第a格有x個(gè),求第b格有多少個(gè)。
解題思路
我們推一下
| pp | p+1p+1 | 2p+12p+1 | 3p+23p+2 | 5p+35p+3 | 8p+58p+5 | 13p+813p+8 | 21p+1321p+13 |
不難發(fā)現(xiàn)pp的系數(shù)和右邊的加數(shù)都是斐波那契數(shù)列。我們可以先預(yù)處理一下斐波那契數(shù)列然后求出pp之后就可以計(jì)算第b格了
代碼
#include<cstdio> #include<iostream> #define ll long long using namespace std; ll f[31],a,x,b,p; int main() {f[1]=1;f[2]=1;for (ll i=3;i<=30;i++)f[i]=f[i-1]+f[i-2];//預(yù)處理斐波那契數(shù)列while (scanf("%d%d%d",&a,&x,&b)!=EOF)//輸入{x-=f[a-1];p=x/f[a];//計(jì)算pif (x%f[a]!=0) printf("-1\n");//判斷無解else{if (b==1) printf("%lld\n",p);//特判else printf("%lld\n",p*f[b]+f[b-1]);//輸出}} }總結(jié)
以上是生活随笔為你收集整理的jzoj3461-小麦亩产一千八【斐波那契数列】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018/7/18-纪中某C组题【jzo
- 下一篇: jzoj3462-休息【归并排序,逆序对