摘要: 【刷题笔记】p9197 摩天大楼 题意 将互不相同的 \(N\) 个整数 \(A_1,A_2,⋯,A_N\) 按照一定顺序排列。假设排列为 \(f_1,f_2,⋯,f_N\),要求:\(|f1−f2|+∣f2−f3∣+⋯+∣f_{N-1}−f_N∣\le L\)。 满足题意的排列的方案数对 \(10 阅读全文
posted @ 2025-07-10 12:01 GuoSN0410 阅读(2) 评论(0) 推荐(0)
摘要: 园方树 前置知识-点双连通分量 点双连通图:图中任意两不同点之间,都有至少两条点不重复的路径。 “点不重复”指两条路径的交集为空(不考虑出发点和终点)。 而一个图的 点双连通分量 则是一个 极大点双连通子图。 所以每一条边 恰属于一个 点双,每一个点属于 至少一个 点双。 定义 园方树 是一种用来将 阅读全文
posted @ 2025-07-06 16:31 GuoSN0410 阅读(11) 评论(0) 推荐(0)
摘要: 思路 首先注意到要求矩阵和,想到的肯定是二位前缀和。 设 \(S_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(A\),宽为 \(B\) 的矩阵和。 设 \(s_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(C\),宽为 \(D\) 的矩阵和。 然后再来考 阅读全文
posted @ 2025-06-09 21:53 GuoSN0410 阅读(5) 评论(0) 推荐(0)
摘要: 线段树合并 实现 每次递归到叶子节点合并。 线段树合并 单次时间复杂度 \(O(n \log n)\)。 证明:每次递归会让区间长度减半,所以最多会递归 \(O(\log n)\) 层,而区间长度为 \(n\),所以叶子节点有\(n\) 个,所以最多合并 \(O(n\log n)\) 次。 因为如果 阅读全文
posted @ 2025-05-31 19:51 GuoSN0410 阅读(33) 评论(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 阅读(13) 评论(0) 推荐(0)
摘要: 简介 虚树就是一种很无奈时的无赖做法 --唐末 当题目中答案只与某些关键点有关,而关键点很稀疏时,就可以用虚树将整棵树浓缩。 建虚树 方法一: 二次排序 + LCA 连边 将所有关键点按 dfn 序排序,求出相邻两个点的 LCA(确定虚树中的所有点)。 将所有 LCA 及关键点去重并再次按 dfn 阅读全文
posted @ 2025-05-26 19:54 GuoSN0410 阅读(16) 评论(0) 推荐(0)
摘要: Hdu 6843 cf181f qoj8704 p124642 阅读全文
posted @ 2025-05-26 16:18 GuoSN0410 阅读(6) 评论(0) 推荐(0)
摘要: 思路 首先注意到一个性质: 选出来的最优路径一定在直径上 证明:我不会,大概理解一下吧。QWQ 考虑如何计算最大距离: 对于在直径上,且不在枢纽上的点: 它的距离就是他与枢纽一个端点距离(大概理解一下)。 对于不在直径上,且与直径交点不在所选路径上的: 不会对最大距离产生贡献。 对于不在直径上,且与 阅读全文
posted @ 2025-05-22 15:18 GuoSN0410 阅读(9) 评论(0) 推荐(0)
摘要: 思路 首先对于 \(k=1\) 的情况: 可以发现在树的直径两端连一条边,一定是最优的。设直径长度为 \(L\),总共有 \(n\) 个点,易得新的花费为 \(2*(n-1)-L+1\),可以理解为用 \(1\) 条边代替了 \(L\) 条边。 再看 \(k=2\) 的情况: 可以仿照第一种情况,在 阅读全文
posted @ 2025-05-20 22:33 GuoSN0410 阅读(22) 评论(0) 推荐(0)
摘要: 思路 首先注意到一个非常难注意到的性质: 将所有有异象石的点按时间戳进行排序,算出每个 \(a_i,a_{i+1}\) 在树上的最短路径和 \(a_n,a_1\) 在树上的最短路径的和,这个和就是第三种询问答案的二倍。 维护一个 set。 若加入 x 号点,它在 set 中左边的点是 l,右边是 r 阅读全文
posted @ 2025-05-20 14:24 GuoSN0410 阅读(8) 评论(0) 推荐(0)