随笔分类 - 题解
P6309 题解
摘要:很经典但是很好的题目。/qiang 标签:线段树。 数轴上有一些关键点,不同的关键点可能在同一坐标。关键点的坐标均为整数。 支持两种操作: 删去 / 添加一些关键点。 取一个点。使得它与 范围内所有关键点的距离最小。求最小距离。 \(\text{关键点的坐标数}\le 3\ti
ABC374E 题解
摘要:cnblogs 好题。爱做。 标签:二分。 求最大的最小值,考虑二分答案。然后问题就转化成了(求 次):有两种物品,每种物品有一个代价和价值,求获得不少于给定价值所需的最小代价。 下文记物品的代价为 ,价值为 ,所拿的数量为 。 假设有两种物品 \(S\
P9912 题解
摘要:P9912 [COCI 2023/2024 #2] Zatopljenje - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 线段树。 离线处理询问,将询问的高度从大到小排序,每次往线段树中加入高度大于当前询问高度的点,然后做一遍区间连续段个数就可以了。code: #include
ABC365D 题解
摘要:赛时脑抽了没写出来。赛后一听说是 DP 就秒了 /wul 为方便,我们用数字代替字母,用 表示石头(R), 表示剪刀(S), 表示布(P)。同时定义函数 ,则有 \(\text{ne}(a) = b \Lef
P10589 题解
摘要:经典题。tag:数状数组。 开一个权值树状数组,从左往右遍历,统计左边比 小的数字个数 与比 大的数字个数 ;然后从右往左遍历,统计右边比 小的数字个数 与比 大的数字个数 \(ur_
ABC350C 题解
摘要:怎么赛时连这道都不会了 /ll 注意到输入是个排列,这意味着我们可以直接确定每个元素应在的位置。 考虑维护每个数当前所在的位置 。对于任意 ,我们访问 ,如果该位置不为第 位便对排列中第 位的数 和
P6492 题解
摘要:P6492 [COCI2010-2011#6] STEP - 洛谷 题目大意:维护一段 01 串,支持单点修改,每次修改后求最长的「 」 的长度。 下文把 「 」称为「合法区间」, 为区间
P1168 题解
摘要:P1168 中位数 - 洛谷 很巧妙的一个题,自己没想出来。 用一个「对顶堆」来维护,即一个大根堆和一个小根堆。保证大根堆的队首 小根堆的队首,并使他们的堆中元素的个数尽量相等。 操作如下: 每次加入一个元素时,如果这个数比大根堆的队首大,就加入小根堆;否则加入大根堆。 比较两个堆中
P1637 题解
摘要:一道绿写 2.5 h,我是什么效率哥。 Solution 提供一种不使用线段树 / 树状数组的方法。前置知识:分治,二分,前缀和。 考虑分治。我们假设有一个分治函数 solve(l, r) 可以统计区间 中的 thair。 对于一个区间 中的 thair
ABC333D 题解
摘要:第一次打 atcoder - ABC 的比赛。at 题是真的不错。 如果运气好的话,这篇题解可能也是我第一篇过审的题解。 Solution 题目来源:ABC333D (访问洛谷 | 访问 atcoder)。 题意: 给你一棵有 个结点的无根树,你可以花费 的代价,删除一个叶子
AT_past202107_l 题解
摘要:Solution 题目来源:AT_past202107_l(in AtCoder | in luogu) 用线段树维护区间最小值。单点修改很好写,我们看怎么区间寻找最小值位置。 对于每次询问,我们先求出所查询区间 的最小值 ,然后写一个寻找函数。对于当前区间
ABC338D 题解
摘要:赛时怎么连这题都不会。再不练练思维真的就连普及题都不会做了啊。 Solution 题目来源:ABC338D(in Atcoder | in 洛谷)。 不妨先考虑应该断掉哪条边。首先我们发现,仅断掉一条边并不会让两个结点不可达,只会让我们从一个结点绕更远的路到达目标结点。 如果我们要从结点
ABC334F 题解
摘要:Cnblogs 线段树优化 dp?线段树优化 dp! Solution 题目来源:ABC334F(in 洛谷 | in AtCoder)题目大意很清晰就不讲了。 我们发现礼物是固定从 房间送的,唯一要分讨的地方就是什么时候要回去拿礼物。所以很容易想到二维 dp。 定义 \(f