uva10655(矩阵快速幂)
来源:互联网 发布:河北省中标数据网 编辑:程序博客网 时间:2024/06/03 18:08
题意:给你a+b,a*b的值让你求a^n+b^n
题解:a^2+b^2 = (a+b)*(a+b)-2*ab a^3+b^3 = (a^2+b^2)(a+b)-(a+b)ab
设f(n) = a^n+b^2那么就可以得到递推公式
f(n) = f(n-1)*(a+b)-f(n-2)*ab
最后跑个矩阵快速幂即可
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ull;struct mat{ ull a[2][2]; mat operator*(const mat &y){ mat z; for(int i = 0; i < 2; i++) for(int j = 0; j < 2; j++){ z.a[i][j] = 0; for(int k = 0; k < 2; k++) z.a[i][j] += a[i][k]*y.a[k][j]; } return z; }};ull p,q,n;mat quick(ull n){ n--; mat ans = {p,0,2,0}; mat x = {p,-q,1,0}; while(n){ if(n&1) ans = x*ans; x = x*x; n/=2; } return ans;}int main(){ // freopen("in.txt","r",stdin); while(scanf("%lld%lld%lld", &p, &q, &n) == 3 && p + q + n){ if(n==0){ puts("2"); continue; } mat ans = quick(n); printf("%lld\n",ans.a[0][0]); } return 0;}
阅读全文
0 0
- uva10655(矩阵快速幂)
- 矩阵快速幂uva10655
- UVA10655矩阵快速幂(构造矩阵)
- Contemplation! Algebra(矩阵快速幂,uva10655)
- Uva10655 Contemplation! Algebra矩阵快速幂
- poj3070(矩阵快速幂,矩阵乘法)
- 快速幂,矩阵快速幂(模板)
- 快速幂(矩阵快速幂)
- 快速矩阵快速幂
- 矩阵相关(研究总结,矩阵,矩阵快速幂)
- 矩阵快速幂(模板)
- hdu2604(矩阵快速幂)
- hdu4968(矩阵快速幂)
- hdu5015(矩阵快速幂)
- Evolution(矩阵快速幂)
- 拼图(矩阵快速幂)
- HDU5171(矩阵快速幂)
- (矩阵快速幂)HDU5667
- 回归决策树
- 掌控之外,收获之中
- MongoDB主从模式,复制模式比较
- appium自动化参考博客
- 实施定量风险分析的工具 EMV分析与决策树学习
- uva10655(矩阵快速幂)
- CentOS Linux 6.8 tomcat的启动关闭
- 对于json的理解
- join()方法
- Java 算法练习 ——— CodeWar Day 1
- 购物车逻辑
- 打印九九乘法表
- 《算法4》图&深度优先与广度优先算法
- CCF-201709-2-公共钥匙盒