HDU3306 Another kind of Fibonacci
来源:互联网 发布:markdown软件 编辑:程序博客网 时间:2024/05/19 16:38
/*题目大意:定义f[n]=x*f[n-1]+y*f[n-2];s[n]=f[0]^2+f[1]^2+f[n]^2;输入n,x,y,输出mod10007后的s[n];*/#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int mod=10007;typedef struct{ long long m[4][4];}matrix;matrix I={1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1};matrix mul(matrix a,matrix b){ int i,j,k; matrix c; for(i=0;i<4;i++) for(j=0;j<4;j++) { c.m[i][j]=0; for(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;}matrix quick_mod(int n,int x,int y){ /*matrix P={1,x*x,y*y,2*x*y, 0,x*x,y*y,2*x*y, 0,1,0,0, 0,x,0,y}; 因为输入的x和y可能很大,所以这时候直接用x*x就溢出了,运行mul函数时总WA,这地方载了N次了。。*/ matrix P={1,((x%mod)*(x%mod))%mod,((y%mod)*(y%mod))%mod,2*((x%mod)*(y%mod))%mod, 0,((x%mod)*(x%mod))%mod,((y%mod)*(y%mod))%mod,2*((x%mod)*(y%mod))%mod, 0,1,0,0, 0,x%mod,0,y%mod}; matrix a=P,b=I; while(n>0) { if(n&1) b=mul(b,a); n=n>>1; a=mul(a,a); } return b;}int main(){ int n,x,y; while(scanf("%d%d%d",&n,&x,&y)!=-1) { matrix temp=quick_mod(n-1,x,y); printf("%d\n",(temp.m[0][0]*2+temp.m[0][1]+temp.m[0][2]+temp.m[0][3])%mod); } return 0;}
0 0
- HDU3306 Another kind of Fibonacci
- hdu3306 Another kind of Fibonacci
- hdu3306 Another kind of Fibonacci
- hdu3306 - Another kind of Fibonacci
- hdu3306 Another kind of Fibonacci 构造矩阵
- hdu3306 Another kind of Fibonacci(构造矩阵)
- hdu3306--Another kind of Fibonacci(矩阵快速幂)
- Another kind of Fibonacci(hdu3306)矩阵快速幂
- 矩阵——hdu3306 Another kind of Fibonacci
- Another kind of Fibonacci
- HDU3306 -- Another kind of Fibonacci 构造矩阵然后矩阵快速幂
- Another kind of Fibonacci(矩阵)
- hdu 3306 Another kind of Fibonacci
- hdu 3306 Another kind of Fibonacci
- HDU 3306 Another kind of Fibonacci
- hdu 3306 Another kind of Fibonacci
- hdu 3306 Another kind of Fibonacci
- hdu 3306 Another kind of Fibonacci
- 使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量
- VIM批量修改数字序号
- JAVA 线程池实战
- IOS总结_实现UIButton的图文混排(一)
- qt-project中关于Qlist的说明
- HDU3306 Another kind of Fibonacci
- hdu3306
- 今天开始写第一篇博客,将行业知识整理一遍
- JSP和Servlet的中文乱码处理
- 设计模式:策略模式
- Android TextView滚动效果
- bootload开发之异常向量表
- Android ScrollView中嵌套GridView,ListView只显示一行的解决办法
- 黑马程序员-ASP.NET图片验证码代码