摘要: Part1.自己一开始是怎么想的 已经知道大概的解法了,花神题,就是很卡常,学习一下卡常的方法。 Part2.正解是怎样的 先简单讲一下正解:发现一个性质,每一个数字最多被除 \(O(logn)\) 次就会变成 \(1\),只需要快速知道需要修改的位置就能够做到优秀的复杂度。 存储一下一个数字的倍数 阅读全文
posted @ 2025-04-07 21:04 Ruan_ji 阅读(238) 评论(0) 推荐(0)
摘要: Part1.自己一开始是怎么想的 我一开始的想法是先考虑什么情况下是看不见的。 如果是 \(i < j\) 的话可以直接看 \(j\) 的斜率和 \(i\) 的斜率就是比较 \(\frac{h_i}{i}\) 的大小关系来判断。所以说我们是要单点修改一个点的斜率。我们要统计的东西很复杂,并没有想明白 阅读全文
posted @ 2025-04-07 11:06 Ruan_ji 阅读(206) 评论(0) 推荐(0)
摘要: Part1.自己一开始是怎么想的 对于查询操作,用权值线段树的基本操作就可以。\(O(logn)\)。 对于连边,直接用并查集把编号算一下。线段树合并。\(O(logn)\) Part2.正解是怎样的 就是这样的。 Part3.差在哪里,如何解决? 想的是对的。 Part4.编码的困难、调出来的错误 阅读全文
posted @ 2025-04-07 11:04 Ruan_ji 阅读(199) 评论(0) 推荐(0)
摘要: Part1.自己一开始是怎么想的 确实感觉到了不好回退,我并不会回滚莫队,所以并没有想出来。 Part2.正解是怎样的 首先把左端点在一个块内的单独考虑,因为不能回退,首先把左端点 \(l\) 放置到当前块的右端点。然后右端点也放到这个地方。在一个一个处理区间询问的时候,右端点是单调递增的,右指针 阅读全文
posted @ 2025-04-07 09:57 Ruan_ji 阅读(233) 评论(0) 推荐(0)