#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<string.h>
#define inf 0x3f3f3f
using namespace std;
struct mat
{
__int64 matrix[2][2];
};typedef struct mat Matrix;
Matrix mul(Matrix a,Matrix b)
{
Matrix reslut;
reslut.matrix[0][0] = a.matrix[0][0]*b.matrix[0][0]+a.matrix[0][1]*b.matrix[1][0];
reslut.matrix[0][1] = a.matrix[0][0]*b.matrix[0][1]+a.matrix[0][1]*b.matrix[1][1];
reslut.matrix[1][0] = a.matrix[1][0]*b.matrix[0][0]+a.matrix[1][1]*b.matrix[1][0];
reslut.matrix[1][1] = a.matrix[1][0]*b.matrix[0][1]+a.matrix[1][1]*b.matrix[1][1];
return reslut;
}
void qsm(int n)
{
Matrix c,d;
c.matrix[0][0] = 1;c.matrix[0][1] = 0;c.matrix[1][0] = 1;c.matrix[1][1] = 0;
d.matrix[0][0] = 1;d.matrix[0][1] = 1;d.matrix[1][0] = 1;d.matrix[1][1] = 0;
while(n)
{
if(n & 1)
{
c = mul(c,d);
}
n >>= 1;
d = mul(d,d);
}
printf("%I64d\n",c.matrix[1][0]);
}
int a,b,test,ans;
int main()
{
while(scanf("%d",&test) != EOF)
{
while(test--)
{
scanf("%d%d",&a,&b);
qsm(b-a);
}
}
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<string.h>
#define inf 0x3f3f3f
using namespace std;
struct mat
{
__int64 matrix[2][2];
};typedef struct mat Matrix;
Matrix mul(Matrix a,Matrix b)
{
Matrix reslut;
reslut.matrix[0][0] = a.matrix[0][0]*b.matrix[0][0]+a.matrix[0][1]*b.matrix[1][0];
reslut.matrix[0][1] = a.matrix[0][0]*b.matrix[0][1]+a.matrix[0][1]*b.matrix[1][1];
reslut.matrix[1][0] = a.matrix[1][0]*b.matrix[0][0]+a.matrix[1][1]*b.matrix[1][0];
reslut.matrix[1][1] = a.matrix[1][0]*b.matrix[0][1]+a.matrix[1][1]*b.matrix[1][1];
return reslut;
}
void qsm(int n)
{
Matrix c,d;
c.matrix[0][0] = 1;c.matrix[0][1] = 0;c.matrix[1][0] = 1;c.matrix[1][1] = 0;
d.matrix[0][0] = 1;d.matrix[0][1] = 1;d.matrix[1][0] = 1;d.matrix[1][1] = 0;
while(n)
{
if(n & 1)
{
c = mul(c,d);
}
n >>= 1;
d = mul(d,d);
}
printf("%I64d\n",c.matrix[1][0]);
}
int a,b,test,ans;
int main()
{
while(scanf("%d",&test) != EOF)
{
while(test--)
{
scanf("%d%d",&a,&b);
qsm(b-a);
}
}
}
对昨天学习的矩阵乘法的加强,第一次WA了,后来输入数据1 49 才发现出现负数了,所以是超了,以后在没有摸的情况下,记得要开int64.不然如果神志不清的话,就很容易找不出来错误哦.