邻接矩阵...
1 #include2 using namespace std; 3 #define LL long long 4 5 const int maxn=2; 6 7 int n; 8 9 struct MM{10 LL a[100][100];11 void init(){12 memset(a, 0, sizeof(a));13 for(int i=1;i<=maxn;++i){14 a[i][i] = 1;15 }16 }17 };18 19 MM a,b,ans;20 21 MM cheng ( MM a,MM b ){22 23 MM ans;24 for(int i=1;i<=maxn;i++)25 for(int j=1;j<=maxn;j++){26 ans.a[i][j]=0;27 for(int k=1;k<=maxn;k++)28 ans.a[i][j]+=a.a[i][k]*b.a[k][j];29 }30 return ans; 31 }32 33 MM shu( MM a,int b){34 35 MM ans;ans.init();36 while(b!=0){37 if(b&1) ans=cheng(a,ans);38 a=cheng(a,a);39 b>>=1;40 }41 return ans;42 }43 int main()44 {45 cin>>n;46 a.a[1][1]=1,a.a[1][2]=1,a.a[2][1]=1,a.a[2][2]=0;47 MM ans=shu(a,n);48 cout<