hdu 5411 矩阵幂求和
来源:互联网 发布:mac忘记了管理员密码 编辑:程序博客网 时间:2024/05/18 14:11
碧云天,黄叶地,秋色连波,波上寒烟翠。
山映斜阳天接水,芳草无情,更在斜阳外。
黯乡魂,追旅思,夜夜除非,好梦留人睡。
明月楼高休独倚,酒入愁肠,化作相思泪。
-----范仲淹《苏幕遮·碧云天》
hud 5411
矩阵幂求和可以将原矩阵最右边加上一列全1
例如原矩阵为A
1 1
0 1
要求A^0 + A^1+...+ A^(m-1)+ A^m
改为矩阵B
1 1 1
0 1 1
0 0 1
求B^m
最后最右列求和即为答案,具体根据题目要求对个别赋值进行修改
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <algorithm>#include <set>#include <cmath>#include <queue>#define INF 0x3f3f3f3f#define lowbit(x) (x&-x)#define dbg(x) (cout<<"===="<<x<<endl)#define dbg1(x) (cout<<"==="<<x)using namespace std;const double eps=1e-9;#define mod 2015typedef long long ll;#define maxn 55int siz;struct mat{ int d[maxn][maxn]; void print() { for (int i=0; i<siz; i++) { for (int j=0; j<siz; j++) printf("%d ", d[i][j]); printf("\n"); } } void init() { for (int i=0; i<siz; i++) for (int j=0; j<siz; j++) d[i][j] = 0; } mat() { init(); } mat operator *(const mat&b) { mat c; //c.init(); for (int i=0; i<siz; i++) for (int k=0; k<siz; k++) for (int j=0; j<siz; j++) c.d[i][j] = (c.d[i][j]+d[i][k]*b.d[k][j])%mod; return c; } mat pow(int x) { mat a, b = *this; for (int f = 0; x; x >>= 1) { if (x & 1) if (f) a = a * b; else a = b, f = 1; b = b * b; } return a; }};mat aa;int main(){// freopen("in.txt", "r", stdin); int t; cin >> t; while (t--) { int n, m; scanf("%d %d", &n, &m); siz = n+1; aa.init(); for (int i=1; i<=n; i++) { int k, p; scanf("%d", &k); for (int j=0; j<k; j++) { scanf("%d", &p); aa.d[i-1][p-1] = 1; } } for (int i=0; i<=n; i++) aa.d[i][n] = 1; aa = aa.pow(m); int ans = 0; //aa.print(); for (int i=0; i<=n; i++) ans = (ans+aa.d[i][n])%mod; printf("%d\n", ans); } return 0;}
0 0
- hdu 5411 矩阵幂求和
- HDU --- 4686 【矩阵快速幂+求和】
- [HDU 5411] CRB and Puzzle (矩阵加速DP + 前缀和矩阵|等比求和快速幂 )
- hdu 2254 奥运(矩阵降幂+二分求和)
- POJ3233 矩阵幂求和
- hdu 1081 最大子矩阵求和问题
- hdu 1588(Fibonacci矩阵求和)
- HDU 1588 二分矩阵连乘求和
- HDOJ(HDU) 2156 分数矩阵(嗯、求和)
- HDU 1588(数论,构造二分矩阵+求幂运算+二分求和)
- HDU 1588 Gauss Fibonacci(矩阵快速幂+二分等比序列求和)
- HDU 2254 奥运(矩阵快速幂+二分等比序列求和)
- hdu 奥运(矩阵快速幂+等比数列快速求和+数论)
- HDU 2243 考研路茫茫——单词情结 (AC自动机+矩阵快速幂求和)
- hdu 1588 Gauss Fibonacci(斐波那契,等比数列求和,矩阵快速幂)
- 矩阵求和
- 矩阵求和
- 矩阵求和
- 深入理解JavaScript系列(17):面向对象编程之概论
- 读写锁
- java笔记--java集合框架
- POJ 3041
- Java智能卡学习(1)--开发环境配置
- hdu 5411 矩阵幂求和
- 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现(推荐)
- hdu 1248 寒冰王座
- Linux 安装配置 Apache
- ZOJ 2112 Dynamic Rankings(主席树套树状数组+静态主席树)
- 安卓基础开发-短信发送器
- 微信公众平台开发【发送消息】被动回复消息
- C语言指针学习(-)
- Nim博弈变形(anti-nim)