hdu 5950 Recursive sequence(递推 快速幂矩阵)
来源:互联网 发布:linux sort 0 编辑:程序博客网 时间:2024/05/17 06:51
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5950
参考自:http://blog.csdn.net/spring371327/article/details/52973534
#include<bits/stdc++.h>using namespace std;typedef long long int ll;const ll mod = 2147493647;//定义矩阵乘法struct matrix{ ll arr[7][7]; matrix operator*(matrix b){ matrix ans; ll tmp; for(int i=0; i<7; i++) for(int j=0; j<7; j++){ ans.arr[i][j] = 0; for(int k=0; k<7; k++){ tmp = (arr[i][k]*b.arr[k][j])%mod; ans.arr[i][j] = (ans.arr[i][j] + tmp)%mod; } } return ans; }};//矩阵快速幂matrix quick_pow(matrix a,ll N){ matrix ans; memset(ans.arr,0,sizeof(ans.arr)); for(int i=0; i<7; i++) ans.arr[i][i] = 1; while(N){ if(N&1) ans = ans*a; a = a*a; N /= 2;; } return ans;}int main(){ matrix a; memset(a.arr,0,sizeof(a.arr)); int tmp[7][7]={{0,1,0,0,0,0,0}, {2,1,1,4,6,4,1}, {0,0,1,4,6,4,1}, {0,0,0,1,3,3,1}, {0,0,0,0,1,2,1}, {0,0,0,0,0,1,1}, {0,0,0,0,0,0,1}}; for(int i=0;i<7;i++)for(int j=0;j<7;j++) a.arr[i][j]=tmp[i][j]; int T; scanf("%d",&T); ll N,aa,bb; while(T--){ scanf("%lld%lld%lld",&N,&aa,&bb); if(N==1) printf("%lld\n",aa); else if(N==2) printf("%lld\n",bb); else{ matrix ans = quick_pow(a,N-2); ll ANS = 0; ANS = (ANS+ans.arr[1][0]*aa)%mod; ANS = (ANS+ans.arr[1][1]*bb)%mod; ANS = (ANS+ans.arr[1][2]*16)%mod; ANS = (ANS+ans.arr[1][3]*8)%mod; ANS = (ANS+ans.arr[1][4]*4)%mod; ANS = (ANS+ans.arr[1][5]*2)%mod; ANS = (ANS+ans.arr[1][6]*1)%mod; printf("%lld\n",ANS); } } return 0;}
阅读全文
0 0
- hdu 5950 Recursive sequence(递推 快速幂矩阵)
- HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)
- ICPC 沈阳站C题 HDU 5950 Recursive sequence 矩阵快速幂 线性递推
- [hdu 5950 Recursive sequence] 矩阵快速幂
- HDU-5950-Recursive sequence-矩阵快速幂
- HDU 5950 Recursive sequence 矩阵快速幂
- [矩阵快速幂]HDU 5950 Recursive sequence
- HDU 5950 Recursive sequence(矩阵构造+矩阵快速幂)
- HDU 5950 Recursive sequence(矩阵快速幂)
- hdu 5950 Recursive sequence(矩阵快速幂,构造)
- HDU 5950 Recursive sequence(矩阵快速幂)
- Recursive sequence HDU --- 5950 【公式矩阵快速幂】
- HDU 5950 Recursive sequence(矩阵快速幂)
- HDU 5950 Recursive sequence(矩阵快速幂)
- hdu 5950 Recursive sequence (矩阵快速幂)
- hdu 5950 Recursive sequence(矩阵快速幂,经典矩阵构造方法)
- hdu 1590(Recursive sequence)矩阵快速幂
- 2016 沈阳 1003 Recursive sequence(hdu 5950)矩阵快速幂
- 中国的亚热带地区为什么这么冷(地缘气候论)
- N
- 服务器支持跨域访问
- MT 200 Financial Institution Transfer for its Own Account金融机构为自己账户转账
- WIN10下VirtualBox使Centos6.7共享文件夹
- hdu 5950 Recursive sequence(递推 快速幂矩阵)
- Java常用集合体系以及区别
- Redis 之redis服务器安装与Java 连接
- 165. Compare Version Numbers
- dijkastra算法实践poj2387
- R
- 大写字母转换为小写字母
- 惊出一身冷汗,raid1其实也不可靠
- 修改rm命令为移动文件到回收站