dp 方程为f[i]=f[i-1]*3+f[i-2]*4 const p=10007; var f:array[0..10000] of longint; n,i:longint; begin readln(n); f[0]:=1; f[1]:=3; for i:=2 to n do f[i]:=(f[i-1]*3+f[i-2]*4)mod p; writeln(f[n]); end. 这题还可以降维,但n不是很大没有必要。n大于10000000时就需要降维了,n大于1*10^9时就需要矩阵乘法了。