hdu 2855
来源:互联网 发布:冒险岛数据库17173 编辑:程序博客网 时间:2024/05/17 01:21
暴力打表找规律: = F(2n)。
#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <stack>#include <string>#include <time.h>#include <cstdio>#include <math.h>#include <iomanip>#include <cstdlib>#include <limits.h>#include <string.h>#include <iostream>#include <fstream>#include <algorithm>using namespace std;#define LL long long#define MIN INT_MIN#define MAX INT_MAX#define PI acos(-1.0)#define N 2#define FRE freopen("input.txt","r",stdin)#define FF freopen("output.txt","w",stdout);#define LL long long#define MIN INT_MIN#define MAX INT_MAX#define PI acos(-1.0)#define N 2#define FRE freopen("input.txt","r",stdin)#define FF freopen("output.txt","w",stdout);int MOD;struct Mat{ LL mat[N][N];};//初始化单位矩阵Mat init(){ Mat E; for(LL i = 0; i < N; i++){ for(LL j = 0; j < N; j++){ if(i == j) E.mat[i][i] = 1; else E.mat[i][j] = 0; } } return E;}//重载乘法Mat operator *(Mat a,Mat b){ Mat c; memset(c.mat,0,sizeof(Mat)); for(LL i = 0; i < N; i++){ for(LL j = 0; j < N; j++){ for(LL k = 0; k < N; k++){ if(a.mat[i][k] && b.mat[k][j]){ c.mat[i][j] = (c.mat[i][j] + a.mat[i][k] * b.mat[k][j]) % MOD; } } } } return c;}//重载加法Mat operator +(Mat a,Mat b){ Mat c; memset(c.mat,0,sizeof(Mat)); for(LL i = 0; i < N; i++){ for(LL j = 0; j < N; j++){ c.mat[i][j] = (a.mat[i][j] + b.mat[i][j]) % MOD; } } return c;}//重载幂次方Mat operator ^(Mat A,LL x){ if(x == 1)return A; Mat c; c = init(); for(; x ; x >>= 1){ if(x&1){ c = c*A; } A = A*A; } return c;}int main(){ LL n,m; Mat gao; gao.mat[0][0] = 1; gao.mat[0][1] = 1; gao.mat[1][0] = 1; gao.mat[1][1] = 0; int t; scanf("%d\n",&t); while(t--){ scanf("%I64d%I64d",&n,&m) ; LL ans; MOD = m; if(!n)ans = 0; else{ Mat res; res = gao^(2*n); ans = res.mat[0][1]; } printf("%d\n",ans % MOD); } return 0;}
- hdu 2855
- hdu 2855
- hdu 2855
- HDU 2855
- HDU 2855解题报告
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- SQL server 2005 数据类型的笔记
- 软件流图
- Sql server 2005 操纵语句的笔记
- 十六岁的博士
- sql server 2005的两个引擎和Go的使用笔记
- hdu 2855
- 模糊查询和子查询笔记(2009
- vim技巧
- T-SQL变量申明及若干函数笔记
- iphone上下左右手势判断代码
- select 语句
- 蛇蛙原理
- 已知二叉树的中序遍历,后序遍历画出二叉树
- VirtualBox虚拟机网络设置(四种方式)