hdu6470 Count 矩阵快速幂
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = , mod = ; struct MAT {
ll a[maxn][maxn];
MAT(){ memset(a,,sizeof(a)); }
MAT operator*(MAT p) {
MAT res;
for (int i = ; i < maxn; i++)
for (int j = ; j < maxn; j++)
for(int k = ; k < maxn; k++)
res.a[i][j] = (res.a[i][j]+a[i][k]*p.a[k][j])%mod;
return res;
}
};
MAT mat_qpow(MAT A, ll b) {
MAT res;
res.a[][] = ;
for (int i = ; i < maxn; i++) {
res.a[i][i] = ;
}
while(b) {
if(b&) res = res*A;
A = A*A;
b >>= ;
}
return res;
}
void init(MAT& A, MAT& B) {
A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=;
A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=;
A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=;
A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=;
A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=;
A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=, A.a[][]=; B.a[][]=, B.a[][]=, B.a[][]=, B.a[][]=, B.a[][]=, B.a[][]=;
} int main() {
int t; scanf("%d",&t);
while(t--) {
ll n; scanf("%lld",&n);
MAT A; MAT ans;
init(A,ans);
ans = mat_qpow(A,n-)*ans;
printf("%lld\n",ans.a[][]);
}
return ;
}
hdu6470 Count 矩阵快速幂的更多相关文章
- 省选模拟赛 Problem 3. count (矩阵快速幂优化DP)
Discription DarrellDarrellDarrell 在思考一道计算题. 给你一个尺寸为 1×N1 × N1×N 的长条,你可以在上面切很多刀,要求竖直地切并且且完后每块的长度都是整数. ...
- 广工十四届校赛 count 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6470 题意:求,直接矩阵快速幂得f(n)即可 构造矩阵如下: n^3是肯定得变换的,用二项式展开来一点 ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6155 Subsequence Count 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6155 题意: 题解来自:http://www.cnblogs.com/iRedBean/p/73982 ...
- HDU 6470 Count 【矩阵快速幂】(广东工业大学第十四届程序设计竞赛 )
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6470 Count Time Limit: 6000/3000 MS (Java/Others) ...
- Count Numbers(矩阵快速幂)
Count Numbers 时间限制: 8 Sec 内存限制: 128 MB提交: 43 解决: 19[提交] [状态] [讨论版] [命题人:admin] 题目描述 Now Alice want ...
- HDU 6470:Count(矩阵快速幂)
Count Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU6470 ()矩阵快速幂
http://acm.hdu.edu.cn/showproblem.php?pid=6470 题意:f[n] = f[n-1] + f[n-2]*2 + n^3; f[1] =1 ; f[2] = 2 ...
- UOJ424 Count 生成函数、多项式求逆、矩阵快速幂
传送门 两个序列相同当且仅当它们的笛卡尔树相同,于是变成笛卡尔树计数. 然后注意到每一个点的权值一定会比其左儿子的权值大,所以笛卡尔树上还不能够存在一条从根到某个节点的路径满足向左走的次数\(> ...
- UVaLive 7361 Immortal Porpoises (矩阵快速幂)
题意:求Fibonacci的第 n 项. 析:矩阵快速幂,如果不懂请看http://www.cnblogs.com/dwtfukgv/articles/5595078.html 是不是很好懂呢. 代码 ...
随机推荐
- ajax发送时禁用按钮
css /*div无法点击*/ .div-cant-click { pointer-events: none; } 发送ajax实例 $.ajax({ url:'url', type:'post', ...
- 2019-2020-1 20199328《Linux内核原理与分析》第一周作业
Windows和Linux在收费方面,软件知识方面,安全性.使用习惯.可定制性上以及应用范畴上都有所不同,UNIX/Linux操作系统下的Shell既是用户交互的界面,也是控制系统的脚本语言,其中Ub ...
- qt tableview 选择模式
QAbstractItemView::SingleSelection QAbstractItemView::ContiguousSelection QAbstractItemView::Extende ...
- Iterator to list的三种方法
目录 简介 使用while 使用ForEachRemaining 使用stream 总结 Iterator to list的三种方法 简介 集合的变量少不了使用Iterator,从集合Iterator ...
- MAC攻击及缺陷
MAC攻击及缺陷 MAC有好几种实现方式 对MAC的攻击 重放攻击 重放攻击的防护 密钥推测攻击 MAC算法的缺陷 第三方证明 防止否认 前面我们在讲HMAC的时候简单讲过了什么是MAC消息认证码. ...
- HTML JavaScript 基础(上)
一.初识JavaScript JavaScript 和 Java什么关系? 半毛线关系都没有,只是名字有点重合而已. JavaScript 和python.C#.Java.Ruby一样,都是一门独立的 ...
- JAVA学习之路 (五) 类
java类的学习 先上一个代码 package bankCard; import java.util.Scanner; // 银行卡类 public class bankCard { // 静态变量 ...
- 更改 vsftpd 的端口号
2019独角兽企业重金招聘Python工程师标准>>> vsftpd启动后,默认的ftp端口是21,现在我想把ftp端口改成 801 ,修改后能保证用户上传下载不受影响 1.编辑 / ...
- Clickhouse 字符串拆分 OR 一行转多行
Clickhouse 字符串拆分 OR 一行转多行 我想把 '123_456_142354_23543' 通过'_' 下划线进行拆分成
- 数据结构--链式栈--C++实现
#include <iostream> using namespace std; template<class T>class Stack { private: struct ...