摘要: 思路 首先注意到要求矩阵和,想到的肯定是二位前缀和。 设 \(S_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(A\),宽为 \(B\) 的矩阵和。 设 \(s_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(C\),宽为 \(D\) 的矩阵和。 然后再来考 阅读全文
posted @ 2025-06-09 21:53 GuoSN0410 阅读(2) 评论(0) 推荐(0)
摘要: 线段树合并 简介 线段树合并单词复杂度 \(O(n \log n)\)。 证明:每次递归会让区间长度减半,所以最多会递归 \(O(\log n)\) 层,而区间长度为 \(n\),所以叶子节点有\(n\) 个,所以最多合并 \(O(n\log n)\) 次。 因为如果对每个节点都开一颗线段树,空间会 阅读全文
posted @ 2025-05-31 19:51 GuoSN0410 阅读(9) 评论(0) 推荐(0)
摘要: 思路 树形 DP 很好注意到这是一道树形 DP 题目。 可以很好想到设 \(f_{i,j}\) 表示当前结点 \(i\) 的权值为 \(j\) 时的方案数。 转移方程:\(f_{i,j}=\sum f_{v, k} * [ok_{i,j}=1]\) 但是这么做为什么是错的呢?因为每种权值有一个数量限 阅读全文
posted @ 2025-05-28 17:04 GuoSN0410 阅读(3) 评论(0) 推荐(0)
摘要: 简介 虚树就是一种很无奈时的无赖做法 --唐末 当题目中答案只与某些关键点有关,而关键点很稀疏时,就可以用虚树将整棵树浓缩。 建虚树 方法一: 二次排序 + LCA 连边 将所有关键点按 dfn 序排序,求出相邻两个点的 LCA(确定虚树中的所有点)。 将所有 LCA 及关键点去重并再次按 dfn 阅读全文
posted @ 2025-05-26 19:54 GuoSN0410 阅读(3) 评论(0) 推荐(0)
摘要: Hdu 6843 cf181f qoj8704 p124642 阅读全文
posted @ 2025-05-26 16:18 GuoSN0410 阅读(3) 评论(0) 推荐(0)
摘要: 思路 首先注意到一个性质: 选出来的最优路径一定在直径上 证明:我不会,大概理解一下吧。QWQ 考虑如何计算最大距离: 对于在直径上,且不在枢纽上的点: 它的距离就是他与枢纽一个端点距离(大概理解一下)。 对于不在直径上,且与直径交点不在所选路径上的: 不会对最大距离产生贡献。 对于不在直径上,且与 阅读全文
posted @ 2025-05-22 15:18 GuoSN0410 阅读(3) 评论(0) 推荐(0)
摘要: 思路 首先对于 \(k=1\) 的情况: 可以发现在树的直径两端连一条边,一定是最优的。设直径长度为 \(L\),总共有 \(n\) 个点,易得新的花费为 \(2*(n-1)-L+1\),可以理解为用 \(1\) 条边代替了 \(L\) 条边。 再看 \(k=2\) 的情况: 可以仿照第一种情况,在 阅读全文
posted @ 2025-05-20 22:33 GuoSN0410 阅读(9) 评论(0) 推荐(0)
摘要: 思路 首先注意到一个非常难注意到的性质: 将所有有异象石的点按时间戳进行排序,算出每个 \(a_i,a_{i+1}\) 在树上的最短路径和 \(a_n,a_1\) 在树上的最短路径的和,这个和就是第三种询问答案的二倍。 维护一个 set。 若加入 x 号点,它在 set 中左边的点是 l,右边是 r 阅读全文
posted @ 2025-05-20 14:24 GuoSN0410 阅读(2) 评论(0) 推荐(0)
摘要: 思路 考虑一条路径会对哪些观察员产生贡献。 设一条路径 x->lca(x,y)->y, 若他会对观察员 u 产生贡献,则: u 位于 x->lca(x,y) 的路径上; u 位于 lca(x,y)->y 的路径上。 对于第一种情况(\(d_u\) 表示根节点到 u 的距离),可以推出此时 \(w_u 阅读全文
posted @ 2025-05-15 15:10 GuoSN0410 阅读(5) 评论(0) 推荐(0)
摘要: 思路 树剖板子 题目中要实现两种操作: 给一个点打上 1 的标记; 找他第一个打上标记 1 的祖先。 考虑第一种操作怎么做,十分简单,直接把一个点的标记修改为 1 就可以,简单明了。 对于第二种操作,可以用树剖将树剖成一条条链,然后开一棵线段树,每次查询区间中编号最大的标记为 1 的点。 真是水题 阅读全文
posted @ 2025-05-13 22:32 GuoSN0410 阅读(1) 评论(0) 推荐(0)