快速矩阵幂 csu1597 薛XX后代的IQ
来源:互联网 发布:阿里云主机的首页 编辑:程序博客网 时间:2024/05/03 13:36
裸快速矩阵的题,,主要来模板测试
说下这个模板用法,下标都是从0开始
Mat(行数,列数,填充矩阵(可填))
mat_mul(A,B)矩阵乘法
mat_pow(A,b)快速矩阵幂
this->S存放矩阵的数组
#include<cstdio>#include<cmath>#include<cstring>#include<queue>#include<vector>#include<functional>#include<algorithm>using namespace std;typedef long long LL;typedef pair<int, int> PII;const int matMX = 3;const int MX = 200000 + 5;const int INF = 0x3f3f3f3f;LL mod;LL power(LL a, LL b) { LL ret = 1; while(b) { if(b & 1) ret = ret * a % mod; a = a * a % mod; b >>= 1; } return ret;}struct Mat { int m, n; LL S[matMX][matMX]; Mat(int a, int b) { m = a; n = b; memset(S, 0, sizeof(S)); } Mat(int a, int b, LL w[][matMX]) { m = a; n = b; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { S[i][j] = w[i][j]; } } }};Mat mat_mul(Mat A, Mat B) { Mat C(A.m, B.n); for(int i = 0; i < A.m; i++) { for(int j = 0; j < B.n; j++) { for(int k = 0; k < A.n; k++) { C.S[i][j] = (C.S[i][j] + A.S[i][k] * B.S[k][j]) % mod; } } } return C;}Mat Blank(int m, int n) { Mat ret(m, n); for(int i = 0; i < m; i++) { ret.S[i][i] = 1; } return ret;}Mat mat_pow(Mat A, LL b) { Mat ret = Blank(A.m, A.n); while(b) { if(b & 1) ret = mat_mul(ret, A); A = mat_mul(A, A); b >>= 1; } return ret;}int main() { int T; scanf("%d", &T); while(T--) { int X, Y, A, B, N; scanf("%d%d%d%d%lld%d", &X, &Y, &A, &B, &mod, &N); LL T1[][matMX] = {{0, 1}, {A, B}}; LL T2[][matMX] = {{X}, {Y}}; Mat s(2, 2, T1); Mat ans(2, 1, T2); Mat res = mat_mul(mat_pow(s, N), ans); printf("%lld\n", res.S[1][0]); } return 0;}
0 0
- 快速矩阵幂 csu1597 薛XX后代的IQ
- CSU 1597: 薛XX后代的IQ (矩阵运算)
- csu 1597 薛XX后代的IQ(循环节)
- CSU 1658 IQ of XUEXX’s descendants 矩阵快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的快速幂
- 矩阵的乘法和矩阵快速幂
- 矩阵快速幂---递推题的快速计算
- 快速幂求模+矩阵的快速幂
- 求矩阵的快速幂
- hdu2276(矩阵的快速幂)
- Num 7 : C语言中的各种排序方法
- 欢迎使用CSDN-markdown编辑器
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之五
- Highcharts的数据表示(1)
- Android HttpUrlConnection 的“POST”和"GET"方法学习心得
- 快速矩阵幂 csu1597 薛XX后代的IQ
- Shell基本知识
- 元图地图开放平台-以CAD图形为底图的互联网地图开放平台
- ZOJ_3643Keep Deleting
- 关于refs/for/
- Genymotion
- android知识图谱
- poj 1456 Supermarket
- Linux关掉某个端口