CODEVS1533 Fibonacci数列 (矩阵乘法)

时间:2023-03-09 05:03:38
CODEVS1533 Fibonacci数列 (矩阵乘法)

嗯,,,矩阵乘法最基础的题了。

Program CODEVS1250;
type arr=array[..,..] of longint;
var T,n,mo:longint;
a,b:arr;
operator *(a,b:arr) c:arr;
var i,j,k,sum:longint;
begin
fillchar(c,sizeof(c),);
for i:= to do
for j:= to do
begin
sum:=;
for k:= to do
sum:=(sum+a[i,k]*b[k,j]) mod mo;
c[i,j]:=sum;
end;
exit(c);
end;
procedure main;
var i,j:longint;
begin
readln(n,mo);
a[,]:=; a[,]:=; a[,]:=; a[,]:=;
b[,]:=; b[,]:=; b[,]:=; b[,]:=;
while n> do
begin
if n mod = then a:=a*b;
n:=n div ;
b:=b*b;
end;
writeln((a[,]+a[,]) mod mo);
end;
begin
readln(T);
while T> do begin dec(T); main; end;
end.