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 是不是很好懂呢. 代码 ...
随机推荐
- vue显示富文本
来源:https://segmentfault.com/q/1010000013952512 用 v-html 属性解决
- vue.js click点击事件获取当前元素对象
Vue.js可以传递$event对象 <body id="app"> <ul> <li v-on:click="say('hello!', ...
- Android--sos闪光灯
Camera camera = null; Parameters parameters = null; Handler handler = new Handler() { @Override publ ...
- Linux查看端口或pid使用路径
1. lsof -i:10010 查看10010端口的占用情况 命令返回结果: 2. netstat -lpn | grep 80 查看80端口服务端socket占用状况 3. ll /proc/26 ...
- Linux 文件常用权限
-rw------- (600) 只有所有者才有读和写的权限 -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 -rwx------ (700) 只有所有者才有读 ...
- KMP & AC自动机
KMP void kmp(char t[],char p[]) { int n=strlen(t),m=strlen(p); int *f=new int[m]; f[0]=f[1]=0; for(i ...
- React-Native iOS真机调试(新版)
2019独角兽企业重金招聘Python工程师标准>>> React-Native iOS真机调试 看到网上很多以前的文章 找到两种方法 一 修改AppDelegate 把URL的替换 ...
- C++基本知识总结
从第一个CPP开始写起: "hello,world" #include<iostream> using namespace std;//使用所有命名空间 int mai ...
- Unity 游戏框架搭建 2019 (四十二、四十三) MonoBehaviour 简化 & 定时功能
MonoBehaviour 简化 在前两篇,我们完成了第九个示例.为了完善第九个示例,我们复习了类的继承,又学习了泛型和 params 关键字. 我们已经接触了类的继承了.接触继承之前,把类仅仅当做是 ...
- js数组中返回具有某个属性具有特定值的对象
const drDataArr = [{ date: 0, type: '心率', value: 82 },{ date: 1, type: '心率', value: 80 },{ date: 2, ...