用的是一种叫做基尔霍夫矩阵的高科技做法(然而并不懂233)
推得一个公式f[i]=3*f[i-1]-f[i-2]+2
飞速高精度ac。
膜拜Vfleaking神犇的推导
http://vfleaking.blog.163.com/blog/static/17480763420119685112649/
/**************************************************************
Problem: 1002
User: zhouyuyang
Language: Pascal
Result: Accepted
Time:0 ms
Memory:268 kb
****************************************************************/
var
n,i,j:longint;
f:array [0..105,0..105] of longint;
begin
read(n);
f[1,0]:=1; f[1,1]:=1; f[2,0]:=1; f[2,1]:=5;
for i:=3 to n do begin
f[i,0]:=f[i-1,0];
for j:=1 to f[i,0] do f[i,j]:=f[i-1,j]*3;
inc(f[i,1],2);
for j:=1 to f[i,0] do begin f[i,j+1]:=f[i,j+1]+f[i,j] div 10; f[i,j]:=f[i,j] mod 10; end;
if (f[i,f[i,0]+1]<>0) then inc(f[i,0]);
for j:=1 to f[i,0] do f[i,j]:=f[i,j]-f[i-2,j];
for j:=1 to f[i,0] do if (f[i,j]<0) then begin dec(f[i,j+1]); inc(f[i,j],10); end;
if (f[i,f[i,0]]=0) then dec(f[i,0]);
end;
for i:=f[n,0] downto 1 do write(f[n,i]);
end.