上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 50 下一页
摘要: 简单倍增。 前置:树上倍增 k 级祖先。 注意题目无修改,所以对于询问距离,直接预处理出每个点到根的距离,然后相加减去两倍 LCA 即可,非常套路。 对于第二位,先求出 u,vu,vu,v 的 LCA,先看 u→lcau \rightarrow lcau→lca 这条路径上经过的点数是否 ≥k\ge 阅读全文
posted @ 2022-11-29 20:39 HappyBobb 阅读(7) 评论(0) 推荐(0)
摘要: 题意 给定 H×WH \times WH×W 的一个矩形,矩形中每个点有一个不超过 nnn 的正整数。 你需要对于 0≤i≤H−h,0≤j≤W−w0 \leq i \leq H-h, 0\leq j \leq W-w0≤i≤H−h,0≤j≤W−w 的所有 (i,j)(i,j)(i,j),将 k<i≤ 阅读全文
posted @ 2022-11-21 08:54 HappyBobb 阅读(18) 评论(0) 推荐(0)
摘要: 考虑操作逆序,那么对于操作 111,加法变成减法。 问题在于对于操作二,如何找到答案。 显然我们可以发现,经过这次操作二后,序列中的每个数都 ≥\geq≥ 这次操作二的答案,于是操作二的答案必然 ≤\leq≤ 这个操作二的区间最小值。 我们可以发现,答案应取区间最小值,因为假如答案可以小于区间最小值 阅读全文
posted @ 2022-11-20 13:31 HappyBobb 阅读(13) 评论(0) 推荐(0)
摘要: 考虑求排名怎么做。 一种空间比较优秀的做法就是树状数组加二分找排名,即值域树状数组上二分。 然后删除即在树状数组上将数的值 −1-1−1 即可。 复杂度应该是 O(nlog⁡n+qlog⁡2n)O(n \log n + q \log^2 n)O(nlogn+qlog2n)。常数有点大,加了快读卡一卡 阅读全文
posted @ 2022-11-14 17:02 HappyBobb 阅读(28) 评论(0) 推荐(0)
摘要: 考虑一种特殊情况:即原序列 aaa 中存在一个 111,例如 a=[3,4,5,6,1]a=[3,4,5,6,1]a=[3,4,5,6,1],显然最优的是把 111 和相邻的进行操作,只需要 n−1n-1n−1 次即可。 若有多个 111,令 c=∑i=1n[ai==1]c = \sum \limi 阅读全文
posted @ 2022-11-11 15:19 HappyBobb 阅读(23) 评论(0) 推荐(0)
摘要: 考虑操作有删边但没有恢复边的操作,很容易想到离线后逆序操作的套路。 逆序后操作即为只有加边没有删边了,并查集维护即可。 但是注意到题目要求点权和,所以带权并查集维护,修改权值也可以轻松做,即在父亲的点上减去本身的贡献加上新的贡献即可。 #include <iostream> #include <cs 阅读全文
posted @ 2022-11-10 12:14 HappyBobb 阅读(16) 评论(0) 推荐(0)
摘要: 先考虑暴力做法。 对于深度 ≥x\geq x≥x 的点变成黄色,相当于对于每一个深度为 xxx 的点,将以它为根的子树中每个点都变成黄色。 但是显然深度为 xxx 的结点的数量是 O(n)O(n)O(n) 级别的,每次用线段树维护区间覆盖区间求和的理论复杂度上界是 O(mnlog⁡n)O(mn\lo 阅读全文
posted @ 2022-11-09 19:23 HappyBobb 阅读(16) 评论(0) 推荐(0)
摘要: 容易想的题目。 考虑两数异或为 111 的性质。 结论:x⊕(x+1)=1x \oplus (x+1)=1x⊕(x+1)=1。 考虑两数 x,yx,yx,y,将每一个用二进制表示出,显然只有 20=12^0=120=1,其余 222 的幂都不可能为 111,即两数异或为 111 当且仅当这两个数二进 阅读全文
posted @ 2022-11-08 20:34 HappyBobb 阅读(24) 评论(0) 推荐(0)
摘要: S 216 J 250 阅读全文
posted @ 2022-11-07 21:47 HappyBobb 阅读(6) 评论(0) 推荐(0)
摘要: 赢麻了 省一稳了 阅读全文
posted @ 2022-11-07 19:24 HappyBobb 阅读(8) 评论(0) 推荐(0)
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 50 下一页