hdu 5950(化解公式+矩阵快速幂)
来源:互联网 发布:建筑设计优化职责 编辑:程序博客网 时间:2024/06/08 19:25
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5950
题意:
给出公式f(n)=f(n-1)+f(n-2)*2+n^4
给出n f[1] f[2] 求f[n]
分析:
快速幂
把公式分解一下,求一下矩阵,矩阵快速幂搞一下就好
代码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;typedef long long ll;const ll mod=2147493647;typedef struct mat { ll m[7][7];} mat;mat mul(mat a,mat b) { mat c; memset(c.m,0,sizeof(c.m)); for(int k=0; k<7; k++) for(int i=0; i<7; i++) for(int j=0; j<7; j++) c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j]%mod)%mod; return c;}mat qmod(mat a,ll k) { mat c; for(int i=0; i<7; i++) for(int j=0; j<7; j++)c.m[i][j]=(i==j); for(; k; k>>=1) { if(k&1)c=mul(c,a); a=mul(a,a); } return c;}mat p = {1, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 4, 0, 4, 1, 0, 0, 0, 6, 0, 6, 3, 1, 0, 0, 4, 0, 4, 3, 2, 1, 0, 1, 0, 1, 1, 1, 1, 1 };int main() { //freopen("f.txt","r",stdin); int T; scanf("%d",&T); while(T--) { ll n, a, b; scanf("%lld%lld%lld",&n,&a,&b); if(n==1) { printf("%lld\n",a); continue; } if(n==2) { printf("%lld\n",b); continue; } mat c=qmod(p,n-2); ll ans = b*c.m[0][0]%mod+ a*c.m[1][0]%mod; ans+=16*c.m[2][0]+8*c.m[3][0]+4*c.m[4][0]+2*c.m[5][0]+c.m[6][0]; printf("%lld\n",ans%mod); } return 0;}
0 0
- hdu 5950(化解公式+矩阵快速幂)
- HDU 2256 & HDU 4565 (矩阵快速幂 + 公式推演)
- Recursive sequence HDU --- 5950 【公式矩阵快速幂】
- hdu 4565 So Easy!(推公式&矩阵快速幂)
- hdu 3411 推公式+矩阵快速幂
- hdu 4565 公式推导+矩阵快速幂
- HDU 4686 (推公式+矩阵快速幂)
- hdu 4565 推倒公式+矩阵快速幂
- HDU 6198 推公式+矩阵快速幂
- HDU 3117 Fibonacci Numbers(矩阵快速幂+公式)
- hdu 2256 Problem of Precision(矩阵快速幂 推公式)
- HDU 4565So Easy! (矩阵快速幂)(推公式)
- HDU 5895 矩阵快速幂+欧拉降幂公式+指数循环节
- HDU-4686 Arc of Dream(推公式+矩阵快速幂)
- HDU 6050 Funny Function(矩阵快速幂或公式)
- HDU 6172 Array Challenge【推公式/猜+矩阵快速幂】
- ZOJ 3690 & HDU 3658 (矩阵快速幂+公式递推)
- HDU 5950(矩阵快速幂)
- 113. Path Sum II
- Java Swing做的简易计算器
- HDU 2340 Obfuscation (DP--记忆话搜索)
- 解决Hibernate向MySQL数据库插入中文乱码问题
- android内存问题详解--重要
- hdu 5950(化解公式+矩阵快速幂)
- 文章标题 HDU 1217 : Arbitrage(最短路--Floyd+map)
- UVALive 3645 Objective: Berlin(最大流)
- 流形学习之等距特征映射(Isomap)
- mysql导入.sql文件时报错:incorrect string value
- IOS NSData/NSArray数组存储为SQLite blob
- 邻接矩阵A和A的转置矩阵乘积表示的意义(有向图)
- hdu 5950 2016ACM/ICPC沈阳赛区现场赛C题【矩阵快速幂】
- hdu 1250 (大整数模板+打表)