tjut 3519
来源:互联网 发布:html5解析json 编辑:程序博客网 时间:2024/06/07 15:31
#include <iostream> #include <cstring> using namespace std; const int mod = 10007; int n; struct matrax { int m[4][4]; }; matrax A={ 1,1,0,2, 1,0,0,0, 0,1,0,0, 0,0,0,2 }; matrax E; void init() { for(int i=0;i<4;i++) for(int j=0;j<4;j++) E.m[i][j]=(i==j); } matrax multi(matrax a,matrax b) { matrax c; for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ c.m[i][j]=0; for(int k=0;k<4;k++) c.m[i][j]+=a.m[i][k]*b.m[k][j]%mod; c.m[i][j]%=mod; } } return c; } matrax power(matrax A,int k) { matrax ans=E,p=A; while(k){ if(k&1){ ans=multi(ans,p); k--; } k>>=1; p=multi(p,p); } return ans; } int main() { init(); int a[4]={8,2,6,16}; while(cin>>n){ if(n<=2){ cout<<0<<endl; continue; } if(n<=5){ cout<<a[n-2]<<endl; continue; } matrax ans=power(A,n-5); int x=0; for(int i=0;i<4;i++) x+=(ans.m[0][i]*a[4-i-1])%mod; cout<<x%mod<<endl; } return 0; }
0 0
- tjut 3519
- tjut 5289
- tjut 5288
- tjut 5294
- tjut 2586
- tjut 5296
- tjut 5297
- tjut 5299
- tjut 5384
- tjut 5387
- tjut 5386
- tjut 5381
- tjut 5400
- tjut 5399
- tjut 5396
- tjut 5398
- tjut 5412
- tjut 5410
- java正则表达式常见验证
- 设计模式学习第十九天
- EF 学习笔记
- pat_BL_1019
- java基础菱形图案输出
- tjut 3519
- Git Extensions 相关
- chrome "Provisional headers are shown"
- 十进制转换成十六进制
- 用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器
- 贫血,充血模型的解释以及一些经验
- ListView的Item上有单选按钮
- 正则表达式
- 287. Find the Duplicate Number