洛谷P4145(上帝造题的七分钟 2 / 花神游历各国)做题笔记

原题链接

全过程

注意到 $ 1 \le n, m \le 10^5 $,区间修改,区间查询,考虑线段树维护区间和,update时通过暴力修改开根号。

然后非常精准的拿到30分。

发现单次区间修改的时间复杂度已经达到 $ O(n \ log \ n) $,严重超时。

试图打懒标记无果,遂阅读题解。

然后发现由于数列中的数 $ \le 10^{12} $,暴力开根号,每个数最多修改6次就会达到1,之后 $ \sqrt{1} = 1 $,可以大大减少无效修改。让线段树再维护区间最大值,若最大值为1则跳过区间修改。

这样代码会显得没那么暴力。

AC Code

posted @ 2026-09-01 21:44  zxqMATT  阅读(7)  评论(0)    收藏  举报