12 2023 档案
摘要:前言 存个模板,以免忘记了。 无向图 定义 Tarjan 算法主要用到两个值,分别为时间戳 以及追溯值 ,其中 的定义为点 的子树中的一点能通过一条返祖边所能到的点的最小时间戳。 这里给张图: 9 12 1 2 2 3 3 4 4
阅读全文
摘要:P2486 [SDOI2011] 染色 感觉不难想,但代码调了好久/ll 不难想到用树链剖分,线段树部分只需要区间赋值,区间查询连续段个数的操作,关键在于树上两点如何计算答案。 假设当前点 要跳到点 ,要求的即为点 到点 ,用一
阅读全文
摘要:P6619 [省选联考 2020 A/B 卷] 冰火战士 不得不说这题除了不会树状数组上倍增其他应该不难想。 分析题目,设场上温度为 ,那么上场的战士要求 ,且注意到答案为上场的冰战士和火战士各能量之和的较小值的两倍。我们令 \(
阅读全文
摘要:CF893F Subtree Minimum Query 由不超过 层的的点的最小值可以想到用主席树。建立时间线为深度,横轴为时间戳,维护区间最小值的主席树。记 为点 的深度, 为访问到点 的 dfs 序,
阅读全文
摘要:建议看这篇博客。 本篇文章记录了笔者的一些理解,有点方面并没有写的很完善,请见谅。 最大子段和 为以 为结尾的最大子段和。 考虑一个 ,若前面的最大子段加上自己不如自己作为单独一个头的话,那么就取自己,即为 \[f_i=\max(f_{i-1}+a_i,a_i)
阅读全文
摘要:树状数组真的很精美,码量小,还很快,比线段树快多了[滑稽]。 一维树状数组 单点修改,区间查询 loj #130. 树状数组 1 lougu P3374【模板】树状数组 1 不多说,代码: #include <bits/stdc++.h> using namespace std; const int
阅读全文
摘要:P9718 [EC Final 2022] Best Carry Player 2 进位这东西只能是从低位到高位考虑的吧,每位进不进位会影响下一位要填的数。 考虑数位 dp,从低位向高位填数字,设计状态 表示当前第 位,填完第 个数字共进了 \(j
阅读全文
摘要:P5249 [LnOI2019] 加特林轮盘赌 考虑 dp,设 为在 只长脖子鹿中第 只获胜的概率。 若 不为第 个时,由第 个死或不死转移而来;若 为第 个时,自己不能死,所以只能从 \(f
阅读全文
摘要:P2824 [HEOI2016/TJOI2016] 排序 首先,序列若干次操作一定有局部的子区间是有序的,但是直接维护区间内每个数的顺序的话,就会超时。所以我们可以用权值线段树来维护(维护的是每个数落在那个值上,区间个数)。 对于排序操作,操作区间一定为若干个有序区间全部或一部分(显然这种情况只能在
阅读全文
摘要:P1879 [USACO06NOV] Corn Fields G 首先考虑暴搜,枚举每个点种不种草,再判断是否有没有相邻的。 我们会发现,只有 个点对答案有影响,为点 上方的点 到点 及点 到点 \(
阅读全文
摘要:P4198 楼房重建 很经典的线段树题。 计算每栋楼的斜率,答案即为求最长前缀最大值。 但是最长前缀最大值不能靠左右子区间运算得来,怎么办? 考虑去计算右子区间对答案的贡献。不妨我们将左子区间内最大值设为 ,将右子区间继续分为 ,设 内的最大值为 \(m\
阅读全文
摘要:P5298 [PKUWC2018] Minimax 线段树好题,虽说是看了题解的,但是细节还是不少。 因为叶子结点的权值互不相同,所以可以离散化,设所有叶子节点的权值不同种类的个数为 。 设计状态 为点 取 的概率。 若点 为叶子
阅读全文