思路:这题求的是矩阵A^k,可以用矩阵相乘的方法,设a=1,b=0,然后把k进行分解,当k为奇数是,k--,b+=a,当k为偶数是k/=2,a=2*a,最后再将a=a+b.
#include
#include
#include
#include
#include
#include
using namespace std;
int m;
long long int n;
struct node
{
int a[15][15];
};
node fix(node a,node b)
{
int i,j,k;
node c;
for(i=0;i>T;
while(T--)
{
cin>>m>>n;
int i,j;
node a,b;
for(i=0;i>a.a[i][j];
if(i==j)
b.a[i][j]=1;
else b.a[i][j]=0;
}
}
while(n>1)
{
if(n%2==1)
{
n--;
b=fix(a,b);
}
else
{
n/=2;
a=fix(a,a);
}
}
long long int sum=0;
a=fix(a,b);
for(i=0;i