[蓝桥杯 2025 国 B] 斐波那契字符串一一题解

简介: 这是一道基于斐波那契字符串的算法题(蓝桥杯2025国赛B组真题)。题目要求计算特定字符串中的逆序对数量,利用斐波那契数列特性优化解法。注意取模运算细节,避免溢出错误。附AC代码及解析:通过预处理斐波那契数组,结合跨部分逆序对公式 `(F_{n-3})^2`,高效求解。

P12833 [蓝桥杯 2025 国 B] 斐波那契字符串 - 洛谷 (luogu.com.cn)
本题为2025.6.15号蓝桥国CB真题,笔者在此做一个记录。比赛中笔者想出来了,但是晚上复盘时发现在计算代码中:int c=(x%M+y%M)%M,在比赛中忘记对这里的加法取模了,导致加法这里到后续会爆,悲............,一失足成千古恨,希望大家引以为戒TT

  • (S_{n-2}) 内部的逆序对:数量为 fib[n-2]
  • (S_{n-1}) 内部的逆序对:数量为 fib[n-1]
  • 跨部分逆序对:(S{n-2}) 中的每个 '1' 与 (S{n-1}) 中的每个 '0' 配对。

  • ones_{n-2} 为 (S{n-2}) 中 '1' 的数量,等于斐波那契数 (F{n-3})。

  • zeros_{n-1} 为 (S{n-1}) 中 '0' 的数量,等于斐波那契数 (F{n-3})。
  • 因此跨部分数量为 ((F{n-3})^2),即代码中的 c * c(其中 `c = F{n-3}`)。
    //ACcode
    #include <iostream>
    #define int long long
    using namespace std;
    const int N=1e5+10;
    const int M=1e9+7;
    int fib[N];
    void fibc(){
         
      fib[1]=0,fib[2]=0,fib[3]=0,fib[4]=1;
      int x=0;
      int y=1;
      for(int i=5;i<=100000;i++){
         
          int c=(x%M+y%M)%M;
          fib[i]=((c%M*c%M)%M+(fib[i-2]%M+fib[i-1]%M)%M)%M;
          x=y;
          y=c;
      }
    }
    signed main()
    {
         
      fibc();
      int t;
      int n;
      cin>>t;
      while(t--){
         
          cin>>n;
          cout<<fib[n]<<endl;
      }
      return 0;
    }
    
    image.png

在这里插入图片描述

目录
相关文章
|
28天前
DP刷题练习(二)
本文通过几道经典题目讲解了动态规划中的背包问题,包括0/1背包和完全背包。 **0/1背包问题**:物品只能用一次,涉及“能否装满”、“最多能装多少”、“装满有多少种方案”等变种问题。例如LeetCode 1049(石头碰撞)、494(目标和)、474(一和零)。 **完全背包问题**:物品可无限使用,关注“装满有多少种方法”或“最少需要多少物品”。如LeetCode 518(零钱兑换II)、322(零钱兑换)、279(完全平方数)。此外,还探讨了组合数与排列数的区别,以及在不同遍历顺序下的应用,如377(组合总和IV)和139(单词拆分)。
186 110
|
28天前
DP刷题练习(三)
本文围绕动态规划(DP)刷题展开,内容基于代码随想录的学习总结。文章通过多个经典LeetCode题目讲解了动态规划的应用,包括打家劫舍系列(198、213、337)、买卖股票系列(121、122、123、188、309)等。从线性DP到树形DP,逐步深入解析状态定义、转移方程和初始化方法。例如,打家劫舍问题中通过`dp[i]`表示前i个房间的最大收益;股票买卖问题则用二维数组`dp[i][j]`记录第i天不同操作后的最大利润。每道题都附有详细代码与逻辑推导,帮助理解动态规划的核心思想及其实现技巧。
186 108
|
1月前
|
弹性计算 运维 监控
资源利用率提升50%:Serverless 驱动国诚投顾打造智能投顾新范式
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
260 19
|
1月前
|
机器学习/深度学习 人工智能 搜索推荐
Deep Search 如何理解业务仓库代码?
本文系统地介绍了 Deep Search 和 Deep Research 的概念、与传统 RAG 的区别、当前主流的商业产品与开源方案、在代码领域的应用(如 Deep Search for 仓库问答)以及未来的发展规划。
230 21
Deep Search 如何理解业务仓库代码?
|
26天前
|
人工智能 边缘计算 Serverless
震惊!CDN都进化到可以用MCP写游戏了吗?
《2048》是一款风靡全球的数字益智小游戏,玩家通过移动和合并相同数字完成2048即为通关。传统开发需数小时甚至数月,而使用ESA MCP Server只需1分钟“0代码”即可实现网页全球部署。ESA MCP Server是开源的Model Context Protocol服务实现,连接AI模型与边缘安全加速服务。结合阿里云边缘函数(ER),支持秒级全球节点部署,降低延迟,提升响应速度。环境搭建简单,仅需配置API密钥与插件,向AI提出需求即可快速生成并部署应用。
88 10
|
人工智能 运维 持续交付
AI大模型运维开发探索第五篇:GitOps 智能体
本文探讨了 Manus 智能体的设计及其与传统智能体的差异,重点分析了 CodeAct 机制对智能体执行效率的提升。作者通过《基于LLM的数据仓库》实验反思了交互接口选择的重要性,并提出操作系统和文件系统作为良好的自反馈交互系统。文章进一步结合 GitOps 和持续集成(CICD)理念,设计了一种低成本、可观测性强的智能体运行方案,包括计划智能体(Planner)和执行智能体(Executor)的协作流程。通过实际案例对比,展示了 GitOps 智能体与 Manus 的相似效果,并总结了其在记忆增强、推理可观测性、低成本部署及跨环境适配等方面的优势。最后提供了相关代码路径和参考材料。
223 17
|
24天前
|
Kubernetes Cloud Native 安全
云原生机密计算新范式 PeerPods技术方案在阿里云上的落地和实践
PeerPods 技术价值已在阿里云实际场景中深度落地。