(分块)洛谷 P3203 弹飞绵羊 题解
题意L 在地上沿着一条直线摆上nnn个装置每个装置设定初始弹力系数kik_iki​当绵羊达到第iii个装置时它会往后弹kik_iki​步达到第ikiik_iiki​个装置若不存在第ikiik_iiki​个装置则绵羊被弹飞。绵羊想知道当它从第iii个装置起步时被弹几次后会被弹飞。为了使得游戏更有趣L 可以修改某个弹力装置的弹力系数任何时候弹力系数均为正整数。输入第一行包含一个整数nnn表示地上有nnn个装置装置的编号从0∼n−10 \sim n-10∼n−1。接下来一行有nnn个正整数依次为那nnn个装置的初始弹力系数。第三行有一个正整数mmm表示操作次数。接下来mmm行每行至少有两个数i,ji,ji,j。若i1i1i1你要输出从编号为jjj的装置出发被弹几次后被弹飞若i2i2i2则还会再输入一个正整数kkk表示编号为jjj的弹力装置的系数被修改成kkk。1≤n≤2×1051\le n \le 2\times 10^51≤n≤2×1051≤m≤1051\le m \le 10^51≤m≤105。思路upd一年后回来复健 OI 了复习到分块看到这道题。太久没有看过题目我是根据查询时候发现维护全局的跳跃终点和跳跃次数是O(1)O(1)O(1)的但是修改牵一发而动全身需要O(n)O(n)O(n)。遇到这种就要想到用分块均衡考虑牺牲查询时候的复杂度变为O(n)O(\sqrt{n})O(n​)转为维护块内每个点跳出块的落点toito_itoi​和次数cnticnt_icnti​。这样修改块内某个值的时候因为其他块的参数指向后继块这些参数只与块内的kkk有关所以修改当前块对其他块没有影响。voidupd(ll x){ll lbl[x],rbr[x];for(intil;ir;i)to[i]cnt[i]0;for(intir;il;i--){if(ia[i]r)to[i]ia[i],cnt[i]1;elseto[i]to[ia[i]],cnt[i]cnt[ia[i]]1;}}//原则上修改一个点会影响前面所有点的答案但是如此维护只影响块内该点的前驱//修改是容易的块内维护前驱即可...llquery(ll x){ll ret0;while(xn){retcnt[x];xto[x];//跳跃保持根号复杂度to与块有关}returnret;}//每个块的to,cnt相对独立代码复健一天写的代码奇短无比不知道以前在干什么……#includebits/stdc.husingnamespacestd;#definelllonglongconstll N2e59;ll n,Q;ll a[N];ll bSize,cnt_b,bel[N],bl[N],br[N];ll to[N],cnt[N];voidupd(ll x){ll lbl[x],rbr[x];for(intil;ir;i)to[i]cnt[i]0;for(intir;il;i--){if(ia[i]r)to[i]ia[i],cnt[i]1;elseto[i]to[ia[i]],cnt[i]cnt[ia[i]]1;}}voidinit(){bSizesqrt(n);cnt_bn/bSize;if(n%bSize)cnt_b;for(inti1;in;i)bel[i](i-1)/bSize1;for(inti1;icnt_b;i){bl[i](i-1)*bSize1;br[i]i*bSize;}br[cnt_b]n;for(intx1;xcnt_b;x)upd(x);}voidmodify(ll x,ll k)//指向块外的修改只影响块内{ll bxbel[x];a[x]k;upd(bx);}llquery(ll x){ll ret0;while(xn){retcnt[x];xto[x];//跳跃保持根号复杂度to与块有关}returnret;}intmain(){scanf(%lld,n);for(inti1;in;i)scanf(%lld,a[i]);init();scanf(%lld,Q);while(Q--){ll op,x,k;scanf(%lld%lld,op,x);x;if(op1)printf(%lld\n,query(x));else{scanf(%lld,k);modify(x,k);}}return0;}

相关新闻

高性能电机控制高速吹风筒方案

高性能电机控制高速吹风筒方案

随着消费升级,吹风机已从单一干发工具演变为护发造型的关键设备。消费者对风速、温控、噪音及护发效果的要求日益严苛,这直接推动了高速吹风筒市场的爆发式增长。而实现高速、智能、安全的核心,便在于电机控制方案的技术突破。 1、吹风筒方案…

2026/8/7 19:10:07 阅读更多 →
终极指南:Aura2/Aura框架核心组件与实战应用

终极指南:Aura2/Aura框架核心组件与实战应用

终极指南:Aura2/Aura框架核心组件与实战应用 【免费下载链接】aura This project is archived, please see the readme for additional resources. 项目地址: https://gitcode.com/gh_mirrors/aura2/aura Aura2/Aura框架是一个强大的组件化开发框架&#xff…

2026/8/7 19:10:07 阅读更多 →
【软件设计师】-进制转换

【软件设计师】-进制转换

久しぶり 好久没有更文,但是前段时间偶然的机会申请blog专家,居然通过了! 虽然: 现在大环境不是很好,blog专家也没有实体证书奖励了,不过私人域名、还有无广告这个还挺满意的; 算了:…

2026/8/7 19:10:07 阅读更多 →

最新新闻

5分钟找回QQ空间青春记忆:GetQzonehistory开源备份工具完全指南

5分钟找回QQ空间青春记忆:GetQzonehistory开源备份工具完全指南

5分钟找回QQ空间青春记忆:GetQzonehistory开源备份工具完全指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想过要找回那些在QQ空间里记录下的青春时光&#xf…

2026/8/7 20:12:30 阅读更多 →
揭秘Intern-S2-Mobius:35B参数的革命性AI模型如何实现4倍推理加速?

揭秘Intern-S2-Mobius:35B参数的革命性AI模型如何实现4倍推理加速?

揭秘Intern-S2-Mobius:35B参数的革命性AI模型如何实现4倍推理加速? 【免费下载链接】Intern-S2-Mobius-FP8 项目地址: https://ai.gitcode.com/InternLM/Intern-S2-Mobius-FP8 Intern-S2-Mobius是一款拥有35B参数的革命性AI模型,它基…

2026/8/7 20:12:30 阅读更多 →
Cisco Time Series Model vs TimesFM2.0:多分辨率改进带来的性能飞跃

Cisco Time Series Model vs TimesFM2.0:多分辨率改进带来的性能飞跃

Cisco Time Series Model vs TimesFM2.0:多分辨率改进带来的性能飞跃 【免费下载链接】cisco-time-series-model-1.0-preview 项目地址: https://ai.gitcode.com/hf_mirrors/cisco-ai/cisco-time-series-model-1.0-preview Cisco Time Series Model 是一款基…

2026/8/7 20:12:30 阅读更多 →
WindFM性能优化技巧:提升预测精度的10个实用方法

WindFM性能优化技巧:提升预测精度的10个实用方法

WindFM性能优化技巧:提升预测精度的10个实用方法 【免费下载链接】WindFM 项目地址: https://ai.gitcode.com/hf_mirrors/NeoQuasar/WindFM WindFM作为一款专注于风能预测的时间序列模型,在实际应用中通过合理的参数调整和优化策略可以显著提升预…

2026/8/7 20:12:30 阅读更多 →
Hecate快速入门:5分钟掌握Vim式终端十六进制编辑技巧

Hecate快速入门:5分钟掌握Vim式终端十六进制编辑技巧

Hecate快速入门:5分钟掌握Vim式终端十六进制编辑技巧 【免费下载链接】hecate 🔥 The Hex Editor From Hell! 🔥 项目地址: https://gitcode.com/gh_mirrors/heca/hecate Hecate是一款高效的终端十六进制编辑器,以其Vim风格…

2026/8/7 20:12:30 阅读更多 →
《Python 异步编程高并发性能调优方案 线上高并发排障实战》

《Python 异步编程高并发性能调优方案 线上高并发排障实战》

《Python 异步编程高并发性能调优方案 线上高并发排障实战》 作者: 赵谷雨 (Zho Gǔ Yǔ) (赵咕咕)技术方向: AI Agent 与大模型应用开发、向量检索与 RAG 系统、异步编程与高性能优化、多 Agent 协作框架 💡 导语与现场排障背景 在最近一次线上压测复盘中&#xf…

2026/8/7 20:11:30 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →