牛客15666 又见斐波那契(矩阵快速幂)
链接:https://ac.nowcoder.com/acm/problem/15666
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
输入描述:
第一行是一个整数T(1 ≤ T ≤ 1000),表示样例的个数。
以后每个样例一行,是一个整数n(1 ≤ n ≤ 1018)。
输出描述:
每个样例输出一行,一个整数,表示F(n) mod 1000000007。
列出等式,
可以求出矩阵A为:
[
[1,1,1,1,1,1],
[1,0,0,0,0,0],
[0,0,1,3,3,1],
[0,0,0,1,2,1],
[0,0,0,0,1,1],
[0,0,0,0,0,1],
]
GLOBAL_MOD = 1000000007
T = int(input())
class Solution:def f(self, n: int) -> int:if n == 0 or n == 1:return nres = self.matrixpower(n-1)res = res[0][0]*1+res[0][1]*0+res[0][2]*8+res[0][3]*4+res[0][4]*2+res[0][5]res = res % GLOBAL_MODreturn resdef matrixpower(self, power):# res初始值为单位矩阵res = [[1, 0, 0, 0, 0, 0],[0, 1, 0, 0, 0, 0],[0, 0, 1, 0, 0, 0],[0, 0, 0, 1, 0, 0],[0, 0, 0, 0, 1, 0],[0, 0, 0, 0, 0, 1]] base = [[1, 1, 1, 1, 1, 1],[1, 0, 0, 0, 0, 0],[0, 0, 1, 3, 3, 1],[0, 0, 0, 1, 2, 1],[0, 0, 0, 0, 1, 1],[0, 0, 0, 0, 0, 1]] # 这个是我们根据斐波那契数列的特点构造的矩阵 while power !=0:if power&1 !=0:res = self.multimatrix(res, base)power = power>>1base = self.multimatrix(base, base)return resdef multimatrix(self, m1, m2):n = len(m1)res = [[0]*n for i in range(n)]for i in range(n):for j in range(n):for k in range(n):res[i][j] = (res[i][j]+m1[i][k] * m2[k][j])%GLOBAL_MODreturn resfor i in range(T):n = int(input())ans = Solution()print(ans.f(n))
牛客15666 又见斐波那契(矩阵快速幂)相关推荐
- 又见斐波那契~矩阵快速幂入门题
链接:https://www.nowcoder.com/acm/contest/105/G 来源:牛客网 题目描述 这是一个加强版的斐波那契数列. 给定递推式 求F(n)的值,由于这个值可能太大,请对 ...
- 「GXOI / GZOI2019」逼死强迫症——斐波那契+矩阵快速幂
题目 [题目描述] ITX351 要铺一条 $2 \times N$ 的路,为此他购买了 $N$ 块 $2 \times 1$ 的方砖.可是其中一块砖在运送的过程中从中间裂开了,变成了两块 $1 \t ...
- 牛客18987 粉嘤花之恋(矩阵快速幂、斐波那契数列)
链接:https://ac.nowcoder.com/acm/problem/18987 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 【每日一题】客似云来(斐波那契数列)
[每日一题]客似云来(斐波那契数列) 文章目录 [每日一题]客似云来(斐波那契数列) 1.题目来源 2.题目描述 3.输入/出描述 4.解题思路 5.代码展示 1.题目来源 牛客网:客似云来 2. ...
- 2018年湘潭大学程序设计竞赛G又见斐波那契
链接:https://www.nowcoder.com/acm/contest/105/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...
- 又见斐波那契数列(矩阵构造+矩阵快速幂)
//补题~~~ 链接:https://ac.nowcoder.com/acm/problem/15666 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- 客似云来———斐波那契数列
文章目录 1 题目 2 解析 3 参考代码 1 题目 客似云来 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 ...
- 2018年湘潭大学程序设计竞赛 G又见斐波那契
题目描述 这是一个加强版的斐波那契数列. 给定递推式 求F(n)的值,由于这个值可能太大,请对109+7取模. 输入描述: 第一行是一个整数T(1 ≤ T ≤ 1000),表示样例的个数.以后每个样例 ...
- 斐波那契数列快速算法详解
最新文章
- Django3.0 +Python3 连接mysql遇到django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer
- iOS保存model数据(自定义Model 可以存放到本地)
- c++枚举类型(一)
- Eclipse 不为人所知的另一面 - 企业管理软件领域 ABAP 编程语言开发利器
- Java 算法 摆动序列
- 【博客大赛】使用LM2677制作的3V至24V数控可调恒压源
- android背景色显示圆形,android – 如何使文本视图形状的圆形和基于条件设置不同的背景颜色...
- Windbg分析高内存占用问题
- MS SQL 日常维护管理常用脚本(二)
- 后台扫描与备份文件泄露(御剑+dirsearch使用)
- 程序员们平时常逛的论坛
- 第一台数控机床专用计算机采用什么元件,数控技术试题库(含答案)
- set global show_compatibility_56 = on;永久生效MySQL重启
- 十载寒冰,难凉热血——2020CSDN年度博客之星Top10心路历程
- 常见ERP软件简单介绍与个人评价
- esp32-Arduino开发学习
- 静态路由 华三静态路由
- Windows挂载Linux网络共享文件夹
- OpenHarmony分布式软总线与设备认证模块总结
- 电脑强制删除顽固文件
热门文章
- LeetCode 954. 二倍数对数组(map计数)
- LeetCode 599. 两个列表的最小索引总和(哈希map)
- java 不重启部署_一篇文章带你搞定SpringBoot不重启项目实现修改静态资源
- php 负载监控_php记录服务器负载、内存、cpu状态的代码
- java自动加空格吗_程序加上空格和不加空格运行结果不一样
- (二十五)【NIPS 2017】Prototypical Networks for Few-shot Learning
- 百度一口气亮出NLP十年积累:完整技术布局全面披露,面向业界砸下11项七夕大礼
- 论文学习12-Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data(CRF
- 基于改进SSD的车辆小目标检测方法
- 顺序表的插入删除查找遍历