news 2026/9/2 22:09:41

P14370 [JOISC 2018] 最差的记者 3 / Worst Reporter 3 Solution

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P14370 [JOISC 2018] 最差的记者 3 / Worst Reporter 3 Solution

P14370 [JOISC 2018] 最差的记者 3 / Worst Reporter 3Solution

注意:我个人推荐 LibreOJ 题面,看这份的样例图片会好不止亿点点。

前言

在考场上只拿了12 1212分(只想出了Subtask 2QwQ大佬勿喷!

这道题纯模拟可以把Subtask 2的分数拿下(因为数据实在太小了),时间复杂度O ( n + q t ) \mathcal{O}(n+qt)O(n+qt),已经到达10 14 10^{14}1014级别了,肯定爆。

所以我们需要一种算法可以达到O ( n + q ) \mathcal{O}(n+q)O(n+q)(即线性处理),好在它并不困难

思路

Part I.

我们会发现一件特别有意思的事情。

每个人的移动周期等于单次的移动距离。

其实这就好写了,我们也得到了一个我们需要的线性的方法:递推

把每个人的移动周期都用f i f_ifi记录下来(0 ≤ i ≤ n 0 \le i \le n0in)。

注意给旗手一个f 0 = 1 f_0 = 1f0=1,毕竟它前面没有人(题目已经说了)。

Part II.

第二件有意思的事情。

如果前面的人移动一次后超越了我,那么我就直接跟在他后面,即f i = f i − 1 f_i = f_{i-1}fi=fi1

小 L:如果我慢悠悠地移动咋办呢?

那么前面的人走⌈ d i f i − 1 ⌉ \lceil \frac{d_i}{f_{i-1}} \rceilfi1di次后我再跑,那么f i = f i − 1 × ⌈ d i f i − 1 ⌉ f_i = f_{i-1} \times \lceil \frac{d_i}{f_{i-1}} \rceilfi=fi1×fi1di

其实做到这里状态转移就已经推完了。


总结一下,这个状态转移其实就是

f ( x ) = { f i = f i − 1 ( d i ≤ f i − 1 ) f i = f i − 1 × ⌈ d i f i − 1 ⌉ ( d i ≥ f i − 1 ) f(x)=\left\{ \begin{aligned} f_i & = f_{i-1} & (d_i \le f_{i-1}) \\ f_i & = f_{i-1} \times \lceil \frac{d_i}{f_{i-1}} \rceil & (d_i \ge f_{i-1}) \\ \end{aligned} \right.f(x)=fifi=fi1=fi1×fi1di(difi1)(difi1)

Part III.

不过我们发现f i f_ifi0 ≤ i ≤ n 0 \le i \le n0in)会有很多是一样的,于是直接把他的左端点记录下来。

小 L:那么怎么处理这些呢?你是不是要一个时间复杂度低一点的算法?

我们发现它们都是倍增的(至少是2 22倍关系),所以可以直接把复杂度降到O ( log ⁡ V ) \mathcal{O}(\log V)O(logV)级别。

然后再和{ l , r } \{l, r\}{l,r}取交集就可以了。

贴两段比较没用的代码。

if(d[i]<=dp[i-1]){dp[i]=dp[i-1];le[i]=le[i-1];}else{dp[i]=((d[i]-1)/dp[i-1]+1)*dp[i-1];le[i]=i;}// 不懂的看上面去 :)
while(pos>=0){intx=t/dp[pos]*dp[pos];ans+=max(0ll,min(r,-1ll*le[pos]+x)-max(l,-1ll*pos+x)+1);pos=le[pos]-1;}

QwQ,绿题拿下!

后记

请勿抄袭题解,违者可能被洛谷棕名哦。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:50:53

RISC-V中断上下文保存与恢复流程系统学习

深入RISC-V中断机制&#xff1a;从硬件触发到上下文恢复的完整路径你有没有遇到过这样的问题——系统突然“卡死”&#xff0c;调试器显示程序跳到了一个完全意想不到的地方&#xff1f;或者在写中断服务例程时&#xff0c;发现某个变量莫名其妙地被改写了&#xff1f;如果你正…

作者头像 李华
网站建设 2026/8/30 12:15:12

强烈安利9个AI论文工具,自考学生轻松搞定论文写作!

强烈安利9个AI论文工具&#xff0c;自考学生轻松搞定论文写作&#xff01; 自考论文写作&#xff0c;AI 工具如何成为你的得力助手&#xff1f; 对于自考学生而言&#xff0c;撰写论文不仅是学术能力的体现&#xff0c;更是完成学业的关键环节。然而&#xff0c;面对繁重的写作…

作者头像 李华
网站建设 2026/8/28 3:56:47

电源管理芯片软启动电路设计原理与应用实例

电源管理芯片软启动电路&#xff1a;从原理到实战的深度拆解你有没有遇到过这样的场景&#xff1f;系统上电瞬间&#xff0c;输入电源“啪”一下跌落&#xff0c;MCU莫名其妙复位&#xff0c;或者输出电容发热严重、寿命骤减。排查半天&#xff0c;发现罪魁祸首竟是——上电浪涌…

作者头像 李华