6198 number number number
来源:互联网 发布:如何恢复ipad数据 编辑:程序博客网 时间:2024/06/06 19:16
题意:
找到K个数字不能构成的fibonacci数字的最小值。
思路:
对于2个数字来说,他所不能构成的最小值,必定是从第 s 个 到第s -1个的fibonacci数字差值大于 一个数字能组成的fibonacci数字。
找个规律发现是 4+n*2-1个数字-1
#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <iostream>using namespace std;struct matrix{ long long arr[3][3];};long long mod=998244353;matrix base,ans;matrix matrix_mulip(matrix a,matrix b){ matrix tep; for(int i=1;i<=2;i++) { for(int j=1;j<=2;j++) { tep.arr[i][j]=0; for(int k=1;k<=2;k++) { tep.arr[i][j]=(tep.arr[i][j]+a.arr[i][k]*b.arr[k][j])%998244353; } } } return tep;}void matrix_pow(matrix a,long long n){ while(n) { if(n%2) { ans=matrix_mulip(ans,a); } a=matrix_mulip(a,a); n=n/2; }}int main(){ base.arr[1][1]=base.arr[1][2]=base.arr[2][1]=1; base.arr[2][2]=0; long long n; while(~scanf("%lld",&n) ) { ans.arr[1][1]=ans.arr[2][2]=1; ans.arr[1][2]=ans.arr[2][1]=0; matrix_pow(base,(4+n*2-1)); printf("%lld\n",ans.arr[1][2]%998244353-1); } return 0;}
阅读全文
0 0
- 6198 number number number
- hdu 6198 number number number
- hdu 6198 number number number
- hdu-6198number number number
- hdu 6198 number number number
- Number
- number
- number
- Number
- number
- number
- Number
- Number
- NUMBER
- Number
- Number()
- number
- Number
- R语言-向量机-员工离职预测训练赛
- 视频播放代码
- KMP 算法(Knuth–Morris–Pratt algorithm)
- leetcode
- 打造究极复用的ListView Gridview适配器
- 6198 number number number
- hdu 6205 card card card(最大子段和)
- GDB调试基本命令
- 《NLP汉语自然语言处理原理与实践》第一章
- 逆波兰式
- web服务器和客户端完成并行处理请求三大方式
- C#综合揭秘——细说事务
- 彻底征服 Spring AOP 之 理论篇
- thinkphp Namespace declaration statement has to be the very first statement