(分块)洛谷 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/10/20 10:36:35 阅读更多 →
终极指南: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/10/19 11:52:23 阅读更多 →
【软件设计师】-进制转换

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

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

2026/10/17 1:39:00 阅读更多 →

最新新闻

高频感知与空间依赖:突破遥感小目标检测瓶颈的关键技术

高频感知与空间依赖:突破遥感小目标检测瓶颈的关键技术

做遥感目标检测的朋友应该都有这种体会:一个在自然图像上跑得不错的检测器,拿到遥感影像上,效果立刻大打折扣。机场里一排排小飞机,每架在图上只占十几二十几个像素;港口里密集停靠的船舶,颜色和海水、码头…

2026/10/20 13:23:18 阅读更多 →
技能管理方法论:从分类评估到组合更新的系统化实践

技能管理方法论:从分类评估到组合更新的系统化实践

1. 从“skills”这个标题说起:一个被低估的硬核话题“skills”这个词,乍一看平平无奇,甚至有点太宽泛了。但恰恰是这种宽泛,让它成了一个特别值得深挖的切口。我在不同场合跟不少做技术、做产品、做设计的朋友聊过,发现…

2026/10/20 13:23:18 阅读更多 →
从知识到硬技能:构建可验证技能栈的底层逻辑与实践方法

从知识到硬技能:构建可验证技能栈的底层逻辑与实践方法

1. 从“skills”这个词说起:为什么它突然成了硬通货最近后台收到不少留言,问的都是同一类问题:简历上写满了“熟练掌握XX”“精通XX”,投出去却石沉大海;面试聊技术头头是道,一到动手环节就卡壳&#xff1b…

2026/10/20 13:23:18 阅读更多 →
STM32裸机移植SOEM EtherCAT主站:从零搭建与伺服控制实战

STM32裸机移植SOEM EtherCAT主站:从零搭建与伺服控制实战

简介:这份资源面向嵌入式与工业自动化方向的开发者,提供将开源SOEM方案移植到STM32平台、构建EtherCAT主站的完整工程代码。EtherCAT作为高精度运动控制领域的实时工业以太网协议,通常依赖Linux主站,而本工程让STM32F767等高性能M…

2026/10/20 13:23:18 阅读更多 →
短词前缀检索与意图补全:从rea到react的毫秒级实现

短词前缀检索与意图补全:从rea到react的毫秒级实现

1. 从“rea”这个标题说起:一个被低估的搜索入口第一次看到“rea”这个标题,很多人会愣一下——三个字母,既不像缩写,也不像完整单词。但如果你在内容平台、电商后台或者数据工具里待过一段时间,就会发现这类“半截词”…

2026/10/20 13:23:18 阅读更多 →
多格式票据识别系统设计与深度学习落地实践

多格式票据识别系统设计与深度学习落地实践

发票识别这个事儿,听起来好像就是个“拍照→出结果”的小工具,但真正在业务里跑过一圈的人都知道,它是个典型的“看着简单、做起来全是坑”的工程问题。尤其是当票据来源一多——纸质发票、电子发票、PDF打印件、拍照件、扫描件、甚至带水印和…

2026/10/20 13:22:17 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →