打卡number three

打卡number three

一派看一边oh my
god!还在不停的拍大腿,小李子三十岁还和少年同样,nice!制片人依旧有对家园,亲情的抒发,离异,父母,孩子,依旧在试着fix这种关联,哦,Frank的阿娘和他父亲的好相爱的人结婚了,那是还是不是又是出品人自身的二个轶事,还不曾看真人的自传,所以先以为是编剧本人的传说呢。Carl对Frank真的很和善很好哎。有一幕是hello,frank,welcome
to FBI.也是神转折,哈哈哈。catch me if you can,when noone try to catch
me,I will not run again.打卡监制第三部小说。

美高梅手机版登录4858,难题轮廓:
  给定一个数k表示您能够从饱含0的斐波这契数列中任取k个数,获得它们的和。求最小的不可能博取的自然数。

思路:
  打表找规律,能够窥见答案为f(2k+3)-1,然后用公式f(i)=f(i/2)*f((i+1)/2-1)+f(i/2+1)*f(x+1)/2)。当然也能够用矩阵急迅幂。

 1 #include<cstdio>
 2 #include<cctype>
 3 #include<ext/hash_map>
 4 inline int getint() {
 5     char ch;
 6     while(!isdigit(ch=getchar()));
 7     int x=ch^'0';
 8     while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
 9     return x;
10 }
11 const int mod=998244353;
12 __gnu_cxx::hash_map<int,int> f;
13 int fib(const int x) {
14     if(!x) return 0;
15     if(x==1||x==2) return 1;
16     if(int t=f[x]) {
17         return t;
18     } else {
19         return f[x]=((long long)fib(x/2)*fib((x+1)/2-1)%mod+(long long)fib(x/2+1)*fib((x+1)/2)%mod)%mod;
20     }
21 }
22 int main() {
23     for(int T=getint();T;T--) {
24         printf("%d\n",(fib(3+getint()*2)+mod-1)%mod);
25     }
26     return 0;
27 }

 

admin

网站地图xml地图