09 2024 档案
摘要:LCA,倍增,树上差分 算法 1 对于 \(m=1\) 的数据。 答案就是路径和减去路径上的最大权值。一次 DFS 即可。 算法 2 对于链的情况。 一个序列问题,二分枚举 \(t\),那么我们需要将所有 \(> t\) 的线段变成 \(\leq t\) 的。我们先求出所有 \(> t\) 的线段的
阅读全文
摘要:数学,DP,背包 这道题主要考察数学。结论是:\((m,b)\) 中的元素一定是由 \((n,a)\) 中的元素选出的。证明如下: 假设 \((n,a)\) 中的元素为集合 \(A\),\((m,b)\) 中的元素为集合 \(B\)。定义 \(A\) 的一类数为 \(x \in A\),且 \(x\
阅读全文
摘要:贪心 观察样例: 假设需要 \(a_1\) 次,那么后面比 \(a_1\) 矮的肯定都能在 \(a_1\) 次内被消除,当出现 \(a_i>a_{i-1}\) 的时候,由于大于的部分与前面不连续,无法在 \(a_1\) 次内消除,我们需要的操作次数就加上 \(a_{i}-a_{i-1}\)。 因此答
阅读全文
摘要:贪心,搜索,基环树 算法 1 对于 \(m=n-1\)。 也就是树的情况,当我们选择了节点 \(u\) 时,就必须往下一直走完。显然我们从 \(1\) 开始,字典序最小。然后将每个点的出边排序,我们每次一定会选择一个最小的走。时间复杂度也就是 \(O(n \log n)\)。 算法 2 对于 \(1
阅读全文
摘要:DP,倍增,LCA 算法 1 对于 \(n,m \leq 10\),这部分可以直接枚举每个点选或不选的情况,时间复杂度为 \(O(2^{n}m)\)。 算法 2 对于 \(n,m \leq 2 \times 10^3\)。 设 \(f(u,0/1)\) 表示选择以 \(u\) 为根的子树,且点 \(
阅读全文
摘要:贪心,双指针 算法 1 对于 \(m=1\),只有一条赛道,也就是树的直径。 算法 2 对于 \(b_i=a_i+1\),此时树退化为链,问题转化为将 \(n-1\) 长度的序列 \(a\) 找出 \(m\) 段,使得最小段长度最大。 算法 3 对于 \(a_i=1\),菊花图的情况。思路开始接近正
阅读全文

浙公网安备 33010602011771号