1242 斐波那契数列的第N项(矩阵快速幂)

news/2024/7/8 13:21:51

1242 斐波那契数列的第N项
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注
斐波那契数列的定义如下:

F(0) = 0
F(1) = 1
F(n) = F(n - 1) + F(n - 2) (n >= 2)

(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, …)
给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可。
Input
输入1个数n(1 <= n <= 10^18)。
Output
输出F(n) % 1000000009的结果。
Input示例
11
Output示例
89

#include<iostream>
using namespace std;
struct node {
long long  t[2][2];
} p;
struct node  mutl( struct node a,struct node b)//矩阵相乘
{
    struct node c;
    c.t[0][0]=c.t[0][1]=c.t[1][0]=c.t[1][1]=0;
    for (int i=0;i<2;i++)
    {
        for (int j=0;j<2;j++)
        {
            c.t[i][j]=0;
            for (int k=0;k<2;k++)
            {
                c.t[i][j]+=(a.t[i][k]*b.t[k][j])%1000000009;
            }
            c.t[i][j]%=1000000009;
        }
    }
    return c;
}
struct node expo (long long n)
{
    struct node temp=p;
    if (n<0)
    {
        return temp;
    }
    while(n)
    {
        if (n&1)
        {
            temp=mutl(temp,p);
            n--;
        }
        p=mutl(p,p);
        n=n>>1;
    }
    return temp;
}
int main()
{
    long long n;
    cin>>n;
    p.t[0][0]=1;
    p.t[0][1]=1;
    p.t[1][0]=1;
    p.t[1][1]=0;
    struct node aa = expo(n-2);
    cout<<aa.t[0][0];
    return 0;
}

http://www.niftyadmin.cn/n/980140.html

相关文章

ubuntu 删除mysql

UBUNTU 彻底删除 MYSQL 然后重装 MYSQL 删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-get autoremove mysql-serversudo apt-get remove mysql-common //这个很重要上面的其实有一些是多余的。 清理残留数据 dpkg -l…

51Nod-1298 圆与三角形

1298 圆与三角形 题目来源&#xff1a; HackerRank 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 0 难度&#xff1a;基础题 收藏 关注 给出圆的圆心和半径&#xff0c;以及三角形的三个顶点&#xff0c;问圆同三角形是否相交。相交输出”Yes”&#…

mnist手写数字识别记录-使用keras分类

文章目录1、mnist介绍1、可视化2、各层介绍2、训练过程1、获取图像信息2.具体训练3、测试及反馈本文是我b站上看的一个大佬讲的视频&#xff0c;讲的还是很通俗的&#xff0c;后面又自己查了点资料&#xff0c;加上了自己的一点理解而来的&#xff0c;仅代表本菜鸡理解&#xf…

堡垒机工作机制

网络***&#xff1a;之前介绍过、AAA采用C/S结构&#xff0c;AAA服务器上集中管理用户信息用户想访问网络资源&#xff0c;从而和网关建立连接&#xff0c;网关把用户的认证、授权、计费信息透传给radius服务器审计计费堡垒主机采用AAAA技术&#xff0c;为用户提供安全管理平台…

水比赛系列-HMI串口屏的使用

文章目录1、HMI串口屏介绍1、选型介绍2、开发工具3、新建工程2、HMI串口屏常用控件1、字库图片2、页面切换3、字符最大长度4、全局还是私有5、亮度调节和波特率6、变量7、定时器8、初始化事件3、串口屏数据交互1、串口发送数据2、模拟器仿真3、发送指令改变控件的值4、源码感觉…

1213: [视频]【计算几何】面积

1213: [视频]【计算几何】面积 时间限制: 1 Sec 内存限制: 128 MB 提交: 65 解决: 53 [提交][状态][讨论版] 题目描述 【题意】 在一个平面坐标系上随意画一条有n个点的封闭折线&#xff08;按画线的顺序给出点的坐标&#xff09;&#xff0c;保证封闭折线的任意两条边都…

stm32-USB使用记录(一)

文章目录1、USB设备介绍2、虚拟串口进行数据收发1、在stm32F1上进行2、在stm32F4上进行3、大容量设备访问内部flash1、USB设备介绍 USB&#xff0c;即为通用串行总线&#xff0c;是一个外部总线标准&#xff0c;用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术…

1212: [视频]【计算几何】判断线段相交(跨立实验)

1212: [视频]【计算几何】判断线段相交&#xff08;跨立实验&#xff09; 时间限制: 1 Sec 内存限制: 128 MB 提交: 122 解决: 60 [提交][状态][讨论版] 题目描述 【题意】 有n条线段&#xff08;编号为1~n&#xff09;&#xff0c;按1~n的顺序放在二维坐标系上&#xff…