[UVA10870] Recurrences
来源:互联网 发布:xmanager5 mac 编辑:程序博客网 时间:2024/04/29 16:31
矩阵快速幂的模板题 构造矩阵
0 0 0 0 0 0 ad
1 0 0 0 0 0 a(d-1)
...........
0 0 0 0 0 1 a(n-1 )
#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;#define MAXN 20#define MAXM 20typedef long long LL;struct Maxtrix{ int n, m; LL A[MAXN+10][MAXN+10]; };LL a[MAXN+10], f[MAXN+10];int n, d;LL p;Maxtrix A, B, C, E;void init(Maxtrix &X){ X.n = X.m = 0; memset(X.A, 0, sizeof(X.A));}void Get_E(){ E.n = E.m = MAXN; for(int i = 0; i < E.n; i++) E.A[i][i] = 1;}Maxtrix mul(Maxtrix AA, Maxtrix BB){ Maxtrix D; init(D); D.n = AA.n; D.m = BB.m; for(int i = 0; i < AA.n; i++) for(int j = 0; j < BB.n; j++) for(int k = 0; k < BB.m; k++) { D.A[i][k] += (AA.A[i][j] * BB.A[j][k]) % p; D.A[i][k] %= p; } return D;}Maxtrix pow_mod(Maxtrix &A, int k){ Maxtrix ans = E, t = A; ans.n = A.n; ans.m = A.m; while(k) { if(k & 1) ans = mul(ans, t); t = mul(t, t); k >>= 1; } return ans;}int main(){ Get_E(); while(cin >> d >> n >> p && d+n+p) { for(int i = 0; i < d; i++) cin >> a[i]; for(int i = 0; i < d; i++) cin >> f[i]; init(A); A.n = 1; A.m = d; for(int i = 0; i < d; i++) A.A[0][i] = f[i]; init(B); B.n = B.m = d; for(int i = 0; i < d; i++) B.A[i+1][i] = 1; for(int i = d-1; i >= 0; i--) B.A[i][d-1] = a[d-i-1]; Maxtrix tmp = pow_mod(B, n-d); Maxtrix ans = mul(A, tmp); cout << ans.A[0][d-1] << '\n'; }}/* 2 10 100 1 1 1 1 3 2147483647 12345 12345678 0 12345 1 2 3 0 0 0*/
0 0
- [UVA10870] Recurrences
- UVA10870-Recurrences
- uva10870 Recurrences
- uva10870 Recurrences 矩阵快速幂
- uva10870 Recurrences矩阵快速幂
- UVA10870 Recurrences —— 矩阵快速幂
- UVa10870
- Recurrences
- Recurrence UVA10870
- UVA10870(Recurrents)
- Recurrences UVA
- Recurrences UVA
- 矩阵快速幂uva10870
- uva10870(矩阵快速幂)
- uva 10870 Recurrences
- Asymptotic Notation and Recurrences
- uva 10870 Recurrences
- Uva Recurrences 矩阵优化
- 亚当斯分区曝光法俗解之一
- 从MyEclipse插件安装中想到的
- 手把手教hadoop2.5.1+eclipse开发调试环境搭建(2)
- 如何理解c和c ++的复杂类型声明
- 评价一个人,就是要看他把时间都花在哪了
- [UVA10870] Recurrences
- 番茄育种之编号 待续
- 解决ArcGIS10x安装在windows8.0+环境无法正常安装 .NET Framework 3.5
- gm8142在/dev目录中显示
- MFC视图切换大全总结
- ch6.JSP内置对象--request对象
- 不知道怎么拟标题
- Matlab画柱形图及正态分布图
- 低秩矩阵的应用--背景建模