FZU 1683 纪念SlingShot (简单的矩阵快速幂)
纪念SlingShot
Description
- 已知 F(n)=3 * F(n-1)+2 * F(n-2)+7 * F(n-3),n>=3,其中F(0)=1,F(1)=3,F(2)=5,对于给定的每个n,输出F(0)+ F(1)+ …… + F(n) mod 2009。
Input
Output
Sample Input
2 3 6
Sample Output
Case 1: 37 Case 2: 313
思路:很简单的矩阵推理。。 告诉了 fn-1,fn-2,fn-3所以因子里面肯定有这三个,同时他是求和,所以因子里面肯定有个sn,直接列上就出答案了。。。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int MOD = 2009;
int n;
struct node
{int matrix[4][4];
};
node mul(node a, node b)
{node t;memset(t.matrix, 0, sizeof(t.matrix));for(int i = 0; i < 4; i++)for(int j = 0; j < 4; j++)for(int k = 0; k < 4; k++)t.matrix[i][j] = (t.matrix[i][j] + a.matrix[i][k] * b.matrix[k][j]) % MOD;return t;
}
node quick_matrix(node p, int k)
{node q;memset(q.matrix, 0, sizeof(q.matrix));for(int i = 0; i < 4; i++)q.matrix[i][i] = 1;while(k){if(k & 1) q = mul(p, q);p = mul(p, p);k >>= 1;}return q;
}
int main()
{int t, l = 0;scanf("%d", &t);while(t--){scanf("%d", &n);node r;r.matrix[0][0] = 1; r.matrix[0][1] = 3; r.matrix[0][2] = 2; r.matrix[0][3] = 7;r.matrix[1][0] = 0; r.matrix[1][1] = 3; r.matrix[1][2] = 2; r.matrix[1][3] = 7;r.matrix[2][0] = 0; r.matrix[2][1] = 1; r.matrix[2][2] = 0; r.matrix[2][3] = 0;r.matrix[3][0] = 0; r.matrix[3][1] = 0; r.matrix[3][2] = 1; r.matrix[3][3] = 0;if(n == 0) {printf("Case %d: 1\n",++l); continue;}if(n == 1) {printf("Case %d: 4\n",++l); continue;}r = quick_matrix(r, n-2);printf("Case %d: %d\n",++l, (r.matrix[0][0]*9 + r.matrix[0][1]* 5 + r.matrix[0][2] * 3 + r.matrix[0][3])% MOD);}return 0;
}
FZU 1683 纪念SlingShot (简单的矩阵快速幂)相关推荐
- fzu 1683 纪念SlingShot 矩阵
题意: 对于给出的递推关系,求前n项和 思路: 数据大,有规律.矩阵快速幂吧.然而为啥这题long long 就TLE.智障题. 构造: Sn=Sn-1+F(n)= Sn-1 +3F(n-1)+2F( ...
- FZU 1683 纪念SlingShot
Problem 1683 纪念SlingShot Accept: 682 Submit: 2368 Time Limit: 1000 mSec Memory Limit : 32768 K ...
- FZU - 1683 纪念SlingShot
Problem 1683 纪念SlingShot Accept: 719 Submit: 2492 Time Limit: 1000 mSec Memory Limit : 32768 K ...
- 【FOJ】Problem 1683 纪念SlingShot
Problem 1683 纪念SlingShot. 思路 构造矩阵T S(n) = Tn-2[0][0] × S(2) + Tn-2[0][1] × f(2) + Tn-2[0][2] × f(1) ...
- 【ZOJ 2974】Just Pour the Water(矩阵快速幂)
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2974 题意 给出n个杯子与初始水量同时进行操作 将其中的水同时平均 ...
- HDOJ 1757 A Simple Math Problem(矩阵快速幂)
2018-5-24 简单的矩阵快速幂问题,重点是如何找到对应关系. f(10) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 f(9) f(9) 1 0 0 0 0 0 0 0 0 0 ...
- HDU 2256(矩阵快速幂)
传送门 题面: Problem of Precision Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- ACM数论之矩阵快速幂
题目链接:杭电1005.一个简单的矩阵快速幂,一开始一直不理解,只是会单纯数字的快速幂,后来经人点拨,只是运算单位不同,一个是矩阵一个是数字.普通数字中的快速幂是用1来作为累乘量的,而矩阵中的单位矩阵 ...
- POJ3070矩阵快速幂简单题
题意: 求斐波那契后四位,n <= 1,000,000,000. 思路: 简单矩阵快速幂,好久没刷矩阵题了,先找个最简单的练练手,总结下矩阵推理过程,其实比较简单,关键 ...
最新文章
- PostgreSQL命令行方式登陆数据库
- maven错误The JAVA_HOME environment variable is not defined correctly
- P3389 【模板】高斯消元法
- 联轴器选型_联轴器| 软件工程
- 服务器 | 安装最新版R和Rstudio(3.5.3)
- asp网络编程:用ASP实现网页BBS
- 【回归预测】基于GPML工具箱的高斯过程回归附matlab代码
- 智慧体检中心管理系统方案/APP/小程序/公众号/网站
- python淘宝秒拍_(python)下载秒拍美拍视频
- mind map 思维导图
- Chrome 扩展开发教程
- luogu 2184 贪婪大陆
- OpenCV+Mediapipe人物动作捕捉与Unity引擎的结合
- 揪出毛孔粗大4个致命原因
- 2022年SCAU计算智能题库
- rails官方指南--建一个简易博客
- matlab fitctree 原理,电力窃漏电用户自动识别.PDF
- SQL Server 使用全文索引进行页面搜索
- 用户在Eightcap易汇平台可以交易哪些产品?投资选择多吗?
- 前端页面中iOS版微信长按识别二维码的bug
热门文章
- sql统计各科成绩大于平均分的人_求解: sql 数据库 检索各科成绩均大于等于该科平均成绩的学生的学号和姓名...
- input和textarea只读设置
- 机器学习-44-Transfer Learning(迁移学习)
- appium---操作手机按键(adb shell input keyevent )
- 修复org.apache.jasper.JasperException: 无法编译JSP
- 使用Python实现多项式系数卷积乘法
- prometheus使用 (二) 监控主机节点
- ijkplayer iOS11播放只有声音没有图像
- Houdini图文笔记:Your driver settings have been set to force 4x Antialiasing in OpenGL applications问题的解决
- 2022-07-08 clickhouse向量化column