【QED】斐波那契游戏

文章目录

  • 题目
  • 思路
  • 代码
  • 复杂度分析
    • 时间复杂度
    • 空间复杂度
  • 总结

题目

题目链接🔗

斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89…

这个数列从第3项开始,每一项都等于前两项之和。

现在,珍珠和雪豹在玩一个好玩的游戏,首先珍珠给出第一个数字a,雪豹给出第二个数字b,他们约定在第三个数字往后的值都是前两个数字的和,他们一共会写下x个数,现在他们想问你,这x个数的和是多少?
【输入格式】
第一行输入一个T代表有 T ( 1 ≤ T ≤ 1 0 5 ) T(1 \leq T \leq 10^5) T(1T105)个样例
接下来T行输入 1 ≤ a , b ≤ 1 0 9 , 3 ≤ x ≤ 1 0 5 1 \leq a,b \leq10^9 , 3 \leq x \leq10^5 1a,b109,3x105代表一个询问
【输出格式】

对于每个询问输出一行,答案可能很大,请对其 1 0 9 + 7 10^9+7 109+7
输入1:

1
3 7 10

输出1:

781

思路

动态规划计算斐波那契数列:

  1. 初始化斐波那契数列的前两项为 a a a b b b
  2. 使用两个数组 a 和 b 分别存储斐波那契数列的前 x x x 项,其中 a[i] 表示第 i i i 项斐波那契数列的值,b[i] 表示第 i − 1 i-1 i1 项前缀和。
    通过递推关系 a [ i ] = a [ i − 1 ] + a [ i − 2 ] a[i] = a[i-1] + a[i-2] a[i]=a[i1]+a[i2] b [ i ] = a [ i − 1 ] + b [ i − 1 ] b[i] = a[i-1] + b[i-1] b[i]=a[i1]+b[i1] 计算斐波那契数列的前 x x x 项。
  3. 求和并取模操作:根据题目要求,计算斐波那契数列前 x x x 项的和,即 a [ 1 ] + a [ 2 ] + … + a [ x ] a[1] + a[2] + \ldots + a[x] a[1]+a[2]++a[x]。对于数字 a a a,前面 n n n项的和累计个数为 a [ n ] a[n] a[n],对于数字 b b b,前面 n n n项的和累计个数为 b [ n ] b[n] b[n]。由于题目要求对结果进行 1 0 9 + 7 10^9+7 109+7 的取模操作,因此在计算过程中需要对结果进行取模,以避免溢出。
    在这里插入图片描述

代码

#include <iostream>

using namespace std;

typedef long long LL;
const long long mod=(long long)1e9+7;

LL a[1000005],b[1000005];

int main()
{
    int n;
    cin>>n;
    a[1]=1;a[2]=1;
    b[1]=0;b[2]=1;
    for(int i=3;i<1000005;++i)
    {
        a[i]=(a[i-1]+a[i-2])%mod;
        b[i]=(a[i-1]+b[i-1])%mod;
    }
    while(n--)
    {
        LL sum=0;
        LL aa,bb,geshu;
        scanf("%lld%lld%lld",&aa,&bb,&geshu);
        printf("%lld\n",((aa*a[geshu])+(bb*b[geshu]))%mod);
    }
    return 0;
}

复杂度分析

时间复杂度

O ( n ) O(n) O(n)

空间复杂度

O ( n ) O(n) O(n)

总结

预处理+前缀和

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker部署TeamCity来完成内部CI、CD流程

使用TeamCity来完成内部CI、CD流程 本篇教程主要讲解基于容器服务搭建TeamCity服务&#xff0c;并且完成内部项目的CI流程配置。至于完整的DevOps&#xff0c;我们后续独立探讨。 一个简单的CI、CD流程 以下分享一个简单的CI、CD流程&#xff08;仅供参考&#xff09;&#…

C++进阶之路---手撕“红黑树”

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、红黑树的概念与性质 1.概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点…

大数据开发-数据仓库简介

文章目录 什么是数据仓库数据仓库基础知识数据仓库的建模方式数据仓库分层数据仓库的命名规范典型数仓系统架构 什么是数据仓库 数据仓库(Data Warehouse)是一个面向主题的、集成的、稳定的且随时间变化的数据集合&#xff0c;用于支持管理人员的决策 面向主题&#xff1a;类…

怎么做好独立站的SEO优化

随着全球贸易的蓬勃发展&#xff0c;越来越多的企业开始关注外贸市场&#xff0c;并将目光投向了外贸网站。然而&#xff0c;在竞争激烈的外贸市场中&#xff0c;如何写出吸引人的文章&#xff0c;以及如何优化网站以在搜索引擎中脱颖而出&#xff0c;成为了外贸独立网站必须面…

前端 -- 基础 表单标签 -- 表单域

表单域 # 表单域是一个包含 表单元素 的区域 在 HTML 标签中&#xff0c; <form> 标签 用于定义表单域&#xff0c; 以实现用户信息的收集和传递 简单通俗讲&#xff0c; 就是 <form> 会把它范围内的表单元素信息提交给后台&#xff08;服务器) 对于上面讲…

外贸网站文章批量生成器

随着全球贸易的不断发展&#xff0c;越来越多的企业开始关注外贸市场&#xff0c;而拥有高质量的内容是吸引潜在客户的关键之一。然而&#xff0c;为外贸网站生产大量优质的文章内容可能是一项耗时且繁琐的任务。因此&#xff0c;外贸网站文章批量生成软件成为了解决这一难题的…

MATLAB教程

目录 前言一、MATLAB基本操作1.1 界面简介1.2 搜索路径1.3 交互式命令操作1.4 帮助系统 二、MATLAB语言基础2.1 数据类型2.2 MATLAB运算2.2.1 算数运算2.2.2 关系运算2.2.3 逻辑运算 2.3 常用内部函数2.4 结构数据与单元数据 三、MATLAB程序设计3.1 M文件3.2 函数文件3.3 程序控…

1688商品详情API接口采集商品上货

阿里巴巴1688平台并没有直接公开商品详情API接口供普通用户或开发者进行商品采集和上货。1688平台主要服务于批发和采购业务&#xff0c;其API服务通常面向的是有深度合作关系的商家或开发者&#xff0c;且需要经过申请和审核流程。 请求示例&#xff0c;API接口接入Anzexi58 …

【重温设计模式】观察者模式及其Java示例

观察者模式的概念和原理 在编程世界中&#xff0c;设计模式作为一种解决问题的策略&#xff0c;它的存在就如同人类语言中的成语&#xff0c;是一种经过时间考验的有效解决方案。 观察者模式就是其中一种重要的设计模式&#xff0c;它在很多场景中都有着广泛的应用。那么&…

【开发】Redis 的理解与数据存储格式

目录 相关传送门 1. NOSQL和关系型数据库比较 2. 主流的NOSQL产品 3. Redis的理解 4. redis数据存储格式 4.1 String 4.2 Hash 4.3 List 4.4 Set 4.5. sorted_set 注&#xff1a;手机端浏览本文章可能会出现 “目录”无法有效展示的情况&#xff0c;请谅解&#xf…

旅游行业分析及媒体邀约资源汇总

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 酒店旅游行业分析及媒体邀约资源汇总是两个相对独立但又相互关联的领域。下面将分别对这两个方面进行概述。 酒店旅游行业分析 1. 市场概况 市场规模&#xff1a;评估市场的总价值、增长…

云原生(四)、Docker-Compose

Docker-Compose Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用一个简单的 YAML 文件来配置应用程序的服务、网络和卷&#xff0c;从而使得在不同环境中轻松部署应用程序变得更加简单和可靠。 Docker Compose 主要由以下几个核心组件组成&#xf…

【SQL】1341. 电影评分(分组求解+合并union all;order by 多字段排序)

前述 知识点回顾&#xff1a;union all和union的区别 Union&#xff1a;对两个结果集进行并集操作&#xff0c;不包括重复行&#xff0c;同时进行默认规则的排序&#xff1b;Union All&#xff1a;对两个结果集进行并集操作&#xff0c;包括重复行&#xff0c;不进行排序&…

主机与windows虚拟机远程桌面实现方法

目录 一、虚拟机相关配置1. 配置虚拟机网络2. 打开虚拟机远程桌面功能3. 配置虚拟机用户与分组 二、主机相关配置 当无法通过共享文件夹实现主机与windows虚拟机文件共享时&#xff0c;可以通过主机与虚拟机远程桌面的方法实现文件的共享传输。本文主要介绍主机与虚拟机远程桌面…

Django 应用的路由访问

项目url 添加应用访问路径 from django.contrib import admin from django.urls import path, include from app1 import viewsurlpatterns [path(admin/, admin.site.urls),path(app1/, include(app1.urls)), # 在主项目添加应用的所有路由路径 ] 就可以访问app1应用下的ur…

【Python】第十二章_外星人入侵_武装飞船

目录 项目概述&#xff1a; 1 项目需求分析 2 安装Pygame 3 开始游戏项目 3.1 创建Pygame窗口以及响应用户输入 3.2 设置背景色 3.3 创建设置类 4 添加飞船图像 4.1 创建Ship 类 4.2 在屏幕上绘制飞船 5 重构&#xff1a; 模块game_functions 5.1 函数check_even…

osgEarth学习笔记2-第一个Osg QT程序

原文链接 上个帖子介绍了osgEarth开发环境的安装。本帖介绍我的第一个Osg QT程序。 下载 https://github.com/openscenegraph/osgQt 解压&#xff0c;建立build目录。 使用Cmake-GUI Configure 根据需要选择win32或者x64&#xff0c;这里我使用win32. 可以看到include和lib路…

注册个人小程序

访问地址 https://mp.weixin.qq.com/ 立即注册 选择小程序 注册 填写信息 登录邮箱 访问邮箱的链接激活账号 选择个人&#xff0c;填写信息 注册完成&#xff0c;即可登录进入填写信息

数通-OSPF域间路由防环机制

1类LSA&#xff1a;用来描述路由器自身直连接口链路状态信息的&#xff08;也就是路由器连了什么&#xff09;&#xff1b; 2类LSA&#xff1a;用来描述伪节点的信息&#xff08;2类LSA不仅描述了拓扑信息&#xff0c;同时也描述了叶子信息&#xff09;&#xff1b; 3类LSA&a…

后端工程师快速使用axios

文章目录 01.AJAX 概念和 axios 使用模板目标讲解代码解析案例前端后端结果截图 02.URL 查询参数模板目标讲解案例前端后端结果截图 03.常用请求方法和数据提交模板目标讲解案例前端后端结果截图 04.axios 错误处理模板目标讲解案例前端后端结果截图 01.AJAX 概念和 axios 使用…