纪念SlingShot 矩阵快速幂 构造矩阵
来源:互联网 发布:面料成衣模拟软件 编辑:程序博客网 时间:2024/06/05 00:09
纪念SlingShot
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription
Input
第一行是一整数m,代表总共有m个cases。
Output
对于每个case,输出一行。格式见样例,冒号后有一个空格。
Sample Input
236
Sample Output
Case 1: 37Case 2: 313
递推式
AC代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define maxn using namespace std;typedef long long ll;int k, mod = 2009;int n = 4;struct Matrix {int ma[5][5];};Matrix multi(Matrix a, Matrix b) {Matrix ans;memset(ans.ma, 0, sizeof(ans.ma));int i, j, k;for(i=1; i<=n; ++i)for(j=1; j<=n; ++j)for(k=1; k<=n; ++k)ans.ma[i][j] = (ans.ma[i][j] + a.ma[i][k]*b.ma[k][j]%mod) % mod; return ans;}Matrix pow(Matrix a, int x) {Matrix ans;memset(ans.ma, 0, sizeof(ans.ma));int i, j;for(i=1; i<=n; ++i)ans.ma[i][i] = 1;while(x) {if(x & 1)ans = multi(ans, a);a = multi(a, a); x >>= 1;}return ans;}int main(){int t, tmp = 0;int num[3] = {1, 4, 9};Matrix ans, b;scanf("%d", &t);while(t--) {scanf("%d",&k);if(k<=2) {printf("Case %d: %d\n",++tmp, num[k]);continue;}memset(ans.ma, 0, sizeof(ans.ma));memset(b.ma, 0, sizeof(b.ma));ans.ma[1][1] = ans.ma[2][3] = ans.ma[3][4] = 1;ans.ma[2][1] = ans.ma[2][2] = 3;ans.ma[3][1] = ans.ma[3][2] = 2;ans.ma[4][1] = ans.ma[4][2] = 7;b.ma[1][1] = 9;b.ma[1][2] = 5;b.ma[1][3] = 3;b.ma[1][4] = 1;ans = pow(ans, k-2);ans = multi(b, ans);printf("Case %d: %d\n",++tmp, ans.ma[1][1]);}return 0;}
0 0
- 纪念SlingShot 矩阵快速幂 构造矩阵
- FZU 1683 纪念SlingShot(矩阵快速幂)
- FZu 1683 纪念SlingShot 矩阵快速幂
- FZU - 1683 纪念SlingShot 矩阵快速幂
- FZU 1683 纪念SlingShot (构造矩阵)
- FZU oj 1683 纪念SlingShot(矩阵快速幂)
- fzu 1683 纪念SlingShot (矩阵快速幂)
- fzu 1683 纪念SlingShot(矩阵快速幂)
- FZU 1683纪念SlingShot (简单的矩阵快速幂)
- FZU1683---纪念SlingShot(矩阵快速幂(数据劣质))
- fzu 1683 纪念SlingShot 矩阵
- fzu 1683 纪念SlingShot(矩阵乘法)
- 构造矩阵+矩阵快速幂
- hdoj 5015 构造矩阵+矩阵快速幂
- hdu4565 矩阵构造+矩阵快速幂
- BZOJ 3240 构造矩阵+矩阵快速幂
- BZOJ 1898 构造矩阵+矩阵快速幂
- 矩阵构造+矩阵快速幂-HDU5950
- 仿微信朋友圈以及新浪微博
- 第14周 项目1 - (1)验证折半查找算法
- opencv3.1自带demo的介绍和运行操作。
- 作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh
- Java-矩阵运算
- 纪念SlingShot 矩阵快速幂 构造矩阵
- Great minds have purpose, others have wishes.[16.11英语总结]
- 进程间通信的方式
- NNU_20161027_4PAT1027. 打印沙漏
- C语言OJ项目参考(2747)进制转换
- 理解JavaScript中的作用域和上下文
- 软件光栅器二之3D渲染流水线的设计和坐标系的选择
- JToolBar创建工具条
- intellij导入项目错误