摘要:
友链+鄙人账号
所有有密码的文章要么是没写完,要么是我的 $GXOJ$ 的 $id$。 阅读全文
摘要:
啊啊啊啊啊啊啊啊啊啊啊我终于改完啦啊啊啊啊啊啊啊。 因为没有在最开始的时候将所有点设置为已经重构的,所以直接 \(R15-R70\) 间卡了两三天。 似乎也是我第一次大规模使用指针了。 这道题假如只有一次询问,就是一道简单淀粉质,直接在根节点建立平衡树,记录 \(r_x-dis(x,rt)\),然后 阅读全文
摘要:
妙不可言!妙绝人寰! 单点修,区间查,包是线段树的。考虑如何比较两节点大小。 考虑二叉搜索树,我们只要再给每个节点附一个权值,就可以比较了! 注意力相当惊人的注意到,假如给每个点一个区间 \([l_x,r_x]\),左右儿子分别表示为 \([l_x,\lfloor\frac{l_x+r_x}2\rf 阅读全文
摘要:
突然想买一瓶,然后喝上几口。(不要命的想法) 动态全局 \(k\) 大想到权值线段树上二分。 由于要存储二维的点,所以得用到我们神通广大的 \(KDT\) 了。 那么想到权值线段树套 \(KDT\) 这种算法了。 笔者用的是二进制分组的写法,插入单次均摊时间复杂度是 \(O(\log^3n)\),查 阅读全文
摘要:
注:\(K-D\ Tree\) 的应用中由于大量用到了 \(dfs\) 剪枝,所以通常不是正解。但是由于他相当好写,而且通常跑的不慢,所以也广为流传。感觉像是一种半骗分思路。下文简称其为 \(KDT\)。 一、\(K-D\ Tree\) 我们都知道 \(2D,3D\) 表示二维、三维,所以 \(KD 阅读全文
摘要:
好题,又学两个思路。 先把问题变简单一点,去掉深度限制,那么有两种做法: 经典的前驱后继转化到二维数点。 颜色相同的点按 \(dfs\) 序排序,每个点 \(+1\),相邻两点 \(lca-1\)。转化为区间求和。 第二种相对实现简单。 假如加上深度,我们可以离线问题,按深度顺序加点。 要在线的话, 阅读全文
摘要:
学到新思路了:求解 \(k\) 大值时,可以将所有元素放一块一起跑。 考虑到 \(n,q\) 奇小无匹,我们便可以制造一个 \(O(qn\log V)\) 的代码。 那么对于我们不想在时间复杂度中出现的 \(m\),我们直接把他扔进可持久化 \(Trie\) 中销赃。 再根据刚才那个思路,将 \([ 阅读全文
摘要:
相当好的题目,虽然和我前几天出的题重了qwq。 \(lmx\) 是我们的红太阳,没有他我们就会死!!! 暴力枚举一个端点,然后用可持久化 \(01\ Trie\) 或者离线 \(Trie\)(当然这题用不了,但不强制在线的话是可以的)得到答案。时间复杂度 \(O(nm\log n)\),过不了,考虑 阅读全文
摘要:
三棵树就很毒瘤了,我们一棵一棵看。 关于第一棵树的路径,经典解法就是点分治和边分治,考虑哪种更加简单。 设 \(dis1/2/3(x)\) 表示 \(x\) 在第 \(1/2/3\) 棵树中的深度(第一棵树的深度当然是点到重心或重边的距离),\(lca2/3(x,y)\) 表示在第 \(2/3\) 阅读全文
摘要:
首先发现 \(p_x\times dis(x,y)+q_x\) 异常像是能斜率优化的样子,那先把求 \(f_x\) 的式子写出来(下设 \(d_x\) 表示 \(x\) 到根的距离): \[f_x=\min_{lca(x,y)=y,y\ne x}(p_x\times(d_x-d_y)+q_x+f_y 阅读全文
摘要:
首先只要得到 \(x=0\) 时的答案,就可以 \(AC\) 本题。这是很重要的。 考虑由于不能有重复经过的边,所以两路径交点数量 \(\le 1\)。 容易想到设 \(dp_u\) 表示以 \(u\) 为端点的链中的贡献最大值。考虑换根 \(dp\),所以先设它只表示它子树内的部分。 当交点数量 阅读全文
摘要:
感觉长脑子了。 考虑在路线两端点的 \(lca\) 计算贡献,那么线段可以分两类: \(u\) 为 \(v\) 祖先。 \(u,v\) 互不为祖先。 设 \(dp_i\) 表示只考虑 \(i\) 子树内的路线时的答案。 引理:若插入一条以 \(i\) 为 \(lca\) 的路径会使以 \(i\) 的 阅读全文
摘要:
随机化好题,但是不会证。 考虑把树看成一条链,链的每个点上缀了一棵树。 那么先随机出两个点 \(x,y\)(实际上随机一个点,另一个点固定似乎更好?),然后对于当前这棵树上的任意点 \(z\),都让他进行一次询问,答案为 \(o=Q(x,y,z)\)。 那么当 \(o=z\) 时,显然 \(z\) 阅读全文
摘要:
绝对好题。 考虑每个点插入的次数必须为 \(\log n\) 级别的,而且还要再小。考虑重链剖分。当然,首先要询问出所有点的深度,并且按深度从小到大依次插入。 每次选择当前重链的链尾,若链尾深度为 \(dep\),询问返回值为 \(dp\),目标父亲深度为 \(d\),则在这条重链上深度为 \(d- 阅读全文