题目链接:LightOJ 1070 Algebraic Problem

题意:已知a+b和ab的值求a^n+b^n。结果模2^64。

思路:

1.找递推式

得到递推式之后就是矩阵快速幂了

注意:模2^64,定义成unsigned long long 类型,因为无符号类型超过最大范围的数与该数%最大范围 的效果是一样的。

AC代码:

#include<stdio.h>
#include<string.h>
#define LL unsigned long longstruct Matrix {LL m[10][10];
};
LL n;
Matrix geti(LL n) {LL i;Matrix b;memset(b.m,0,sizeof b.m);for(i=0;i<2;i++)b.m[i][i]=1;return b;
}Matrix matrixmul(Matrix a,Matrix b) {LL i,j,k;Matrix c;for(i=0;i<2;i++) {for(j=0;j<2;j++) {c.m[i][j]=0.0;for(k=0;k<2;k++) {c.m[i][j]+=(a.m[i][k]*b.m[k][j]);}}}return c;
}Matrix quickpow(Matrix a,LL p) {Matrix m=a;Matrix b=geti(n);while(p) {if(p%2)b=matrixmul(b,m);p/=2;m=matrixmul(m,m);}return b;
}int main() {LL t;LL p,q;int cas=1;Matrix pp,init,ans;//printf("%llu\n",kmod);scanf("%llu",&t);while(t--) {scanf("%llu %llu %llu",&p,&q,&n);memset(pp.m,0,sizeof pp);pp.m[0][0]=p;pp.m[0][1]=1;pp.m[1][0]=-q;pp.m[1][1]=0;init.m[0][0]=p;init.m[0][1]=2;init.m[1][0]=0;init.m[1][1]=0;printf("Case %d: ",cas++);if(n==0){printf("%llu\n",init.m[0][1]);}else if(n==1){printf("%llu\n",init.m[0][0]);}else {ans=quickpow(pp,n-1);ans=matrixmul(init,ans);printf("%llu\n",ans.m[0][0]);}}return 0;
}
/**/

LightOJ 1070 Algebraic Problem (推导+矩阵快速幂)相关推荐

  1. A Simple Math Problem(矩阵快速幂)

    Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x >= 10 f(x) = a0 * ...

  2. 【HDU - 1757】A Simple Math Problem (矩阵快速幂)

    题干: Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.  If x >= 10 f(x) = ...

  3. 43行代码AC——HDU 1757 A Simple Math Problem(矩阵快速幂,附快速幂讲解)

    一道经典的矩阵快速幂模板题. 传送门1-->快速幂基本思想 传送门2-->矩阵快速幂讲解(教主传授) 代码(去掉空行43行) #include<iostream> #inclu ...

  4. HDOJ 1757 A Simple Math Problem(矩阵快速幂)

    2018-5-24 简单的矩阵快速幂问题,重点是如何找到对应关系. f(10) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 f(9) f(9) 1 0 0 0 0 0 0 0 0 0 ...

  5. HDU 1757 A Simple Math Problem(矩阵快速幂)

    题目链接 题意 :给你m和k, 让你求f(k)%m.如果k<10,f(k) = k,否则 f(k) = a0 * f(k-1) + a1 * f(k-2) + a2 * f(k-3) + -- ...

  6. HDU - 1757 A Simple Math Problem (矩阵快速幂)

    Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.  If x >= 10 f(x) = a0 * ...

  7. LightOJ-1070- Algebraic Problem (矩阵快速幂)

    原题链接: Given the value of a+b and ab you will have to find the value of an+bn. a and b not necessaril ...

  8. foj2198 Problem 2198 快来快来数一数 dp 矩阵快速幂

    Problem 2198 快来快来数一数 Accept: 67 Submit: 194 Time Limit: 1000 mSec Memory Limit : 65536 KB Problem De ...

  9. DUToj1085 Water Problem(矩阵快速幂)

    Problem I: Water Problem Time Limit:3000/1000 MS (Java/Others)   Memory Limit:163840/131072 KB (Java ...

最新文章

  1. go 打印json 转义_Go 项目开发中 10 个最常见的错误
  2. pycharm windows 服务器_环境配置 | Pycharm远程开发的环境配置
  3. CentOS7中MariaDB重置密码
  4. 关闭VMware 不用的服务
  5. 日志 log4j.xml配置详解
  6. 深度linux卡顿,Deepin很卡怎么办?Deepin卡顿解决方法盘点
  7. java语法优化小结
  8. 机器学习模型_如何口述机器学习模型原理
  9. Spring velocity 中文乱码 解决方案
  10. android音频框架
  11. JAVA人力、项目面试常谈问题以及个人开场介绍模板
  12. 通过2048学习自定义view(二) 滑动事件监听 与 事件回调
  13. java中乘法计算的三种方式 位运算中的另一种运算 — 左移运算
  14. 思维导图c语言java区别_C语言基本数据类型的思维导图
  15. 云从科技上市在即,或成为小一号的商汤科技?
  16. 准确的找到BAT实习机会~我入职了腾讯
  17. 古代汉语王力版复习重点要点
  18. App流量变现并不一定损害用户体验,这些方法你得了解
  19. 船舶强度与结构设计大作业二matlab,船舶强度与结构设计题目
  20. OpenGL---PBO

热门文章

  1. [go学习笔记.第一章] go可以做什么
  2. 正版office 2007 简体中文专业版(附正版序列号)高速下载正版office 2007 简体中文专业版...
  3. echart象形图-三角锥形/山峰形/三角形--柱子渐变色,x轴换行显示,加单位显示
  4. 关于Lind.DDD.Api客户端的使用与知识分享
  5. 记一次xfs文件系统损坏,磁盘修复问题
  6. 编码标准:纪律和人因工程的双剑合璧
  7. 完整学习笔记之Android基础(详版)
  8. UVA 1084 deer-proof fence
  9. java jsp中的日历表_java-jsp日历
  10. spring integration-概述