先上一道例题:CF446C
维护区间求和 和区间对应位置加上对应的斐波那契数列。
这不是一个一次函数,也不是一个差分序列。所以我们线段树不能做区间加这一个操作。
考虑斐波那契数列的通项 Fn=√55[(1+√52)n−(1−√52)n]
发现这个东西是一个等比数列 我们可以利用线段树来维护等比数列 当然由于存在模数1e9+9
那么√5这个东西就好处理了。
简述一下二次剩余:存在一个式子x2≡n(modp) 给出n和p 求出一个x满足这个等式 则我们称n为模p的二次剩余。
若不存在这样的x则称n是模p的非二次剩余。同时我们称x为二次同余方程的解。
对于一个n如果我们要求√nmodp的值 那么么我们按n是否是模p的二次剩余如果是的话就会满足x2≡n(modp)→√nmodp
那么我们就可以用x代替√n即只需要求出该二次同余方程的解即可。
综上对于上述题目 我们找到关于5的二次同余方程的解再除以一波逆元可以发现变成了两个等比数列。
我们直接线段树维护等比数列即可。关于区间加我们等比数列求和更新该区间的值。
考虑下放标记其实我们找到对应的区间加上左端点的等比数列的比该pushdown的时候把右边区间加上左边区间的贡献即可。
```
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理