题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2256

题目大意:

题目要求的是(sqrt(2)+sqrt(3))^2n %1024向下取整的值

解题思路:

这里很多人会直接认为结果等于(an+bn*sqrt(6))%1024,但是这种结果是错的,因为这边涉及到了double,必然会有误差,所以根double有关的取模都是错误的思路

转载于:https://blog.csdn.net/chenguolinblog/article/details/10212567

上述思路是转载的,我就是上面说的“很多人”,虽然递推矩阵写出来的,但是还是没想到可以转化成上面那样。直接输出2*a-1就是答案。这里也需要记住double取模是错误的

 #include<bits/stdc++.h>
using namespace std;
int MOD = ;
struct Mat
{
int a[][];
int n, m;//n为行数,m为列数
Mat(int n, int m):n(n), m(m)
{
memset(a, , sizeof(a));
}
void init()
{
for(int i = ; i < n; i++)a[i][i] = ;//初始化成单位矩阵
}
void output()
{
for(int i = ; i < n; i++)
{
for(int j = ; j < m; j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
};
Mat mul(Mat a, Mat b)//矩阵乘法
{
Mat tmp(a.n, b.m);//矩阵乘法结果矩阵行数为a的行数,列数为b的列数
for(int i = ; i < a.n; i++)
{
for(int j = ; j < b.m; j++)
{
for(int k = ; k < a.m; k++)//a.m == b.n(乘法的前提条件)
{
tmp.a[i][j] += (a.a[i][k] * b.a[k][j] % MOD);
tmp.a[i][j] %= MOD;
}
}
}
return tmp;
}
Mat pow(Mat a, int n)
{
Mat tmp(a.n, a.m);
tmp.init();
while(n)
{
if(n & )tmp = mul(tmp, a);
n /= ;
a = mul(a, a);
}
return tmp;
}
int main()
{
int T, n;
cin >> T;
Mat a(, );
a.a[][] = , a.a[][] = ;
a.a[][] = , a.a[][] = ;
while(T--)
{
cin >> n;
Mat ans = pow(a, n);
//ans.output();
int x = ans.a[][], y = ans.a[][];
cout<<( * x - ) % MOD<<endl;
}
}

最新文章

  1. 【海岛帝国系列赛】No.2 海岛帝国:“落汤鸡”市的黑帮危机
  2. 设置图片自适应DIV大小
  3. JavaScript的语法要点 2 - Scope Chain
  4. LNMP1.2一键安装教程
  5. jQuery慢慢啃筛选(四)
  6. C#并行和多线程编程
  7. [google面试CTCI] 1-6.图像旋转问题
  8. 1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用
  9. IDEA 破解_补丁永久_2018.3
  10. Flask蓝图
  11. div无法触发blur事件解决办法
  12. nutch从搜索引擎到网络爬虫
  13. AngularJS AOP 实例
  14. SDN2017 第一次实验作业
  15. UIBarButtonItem
  16. 获取lambda表达式类型,获取attributes是注意事项
  17. FluentValidation 模型验证
  18. Apache无法启动报错查看
  19. 「GXOI / GZOI2019」逼死强迫症——斐波那契+矩阵快速幂
  20. CodeForces - 344D Alternating Current (模拟题)

热门文章

  1. 51nod 1405【DFS】
  2. 帝都Day4(3)——还是数据结构
  3. 获取.net应用的版本及依赖信息
  4. 项目经验:Glyphicons字体图标改造,制造适合自己项目的字体图标
  5. 多重背包(dp专题)
  6. Spark编程模型(中)
  7. Kotlin基础知识
  8. 敏捷开发(Agile development)
  9. asp.net5中程序根目录的获取
  10. $.ajax仿axios封装