摘要:
https://blog.csdn.net/KsCla/article/details/78249148 用类似经典的链上区间颜色计数问题的做法,这个题可以看成是询问DFS在[L[x],R[x]]中,深度在[dep[x],dep[x]+d]中,上一个同色点在[0,L[x]-1]中的点的个数。这是个三 阅读全文
摘要:
比较自然的思路是,由于需要记录连通块合并时的信息,所以需要建出Kruskal重构树。 需要用LCT维护,支持加点和在线LCA操作。 不妨考虑在并查集合并的同时记录信息,pre[x]表示x与它的父亲相连的时刻。 两个点连通的时刻,等于两个点之间路径上时刻的最大值。 注意到按秩合并但不路径压缩的并查集不 阅读全文
摘要:
可持久化Trie模板题。 建两种可持久化Trie,每个点两棵,一棵对DFS求前缀和,一棵对祖先求前缀和。 或者树剖,不好写多少还多个log。 阅读全文
摘要:
线段树基础操作题,唯一需要思考下的是将区间的前k个0覆盖为1。 线段树上二分,先递归到左子树覆盖,回溯时返回还剩多少个0未被覆盖,在根据这个信息递归到右子树。注意特判k=0的情况。 要维护的信息有:区间左边最长0连续段,右边最长0连续段,区间整体最长0连续段,区间内1的个数,以及一个记录是否被区间覆 阅读全文
摘要:
经典问题,按位贪心,每次需要知道的是”在这一位之前的位都以确定的情况下,能否找到这一位是0/1的数”,这就是在询问[L,R]内某个值域区间是否有数,主席树即可。 阅读全文
摘要:
两种做法,前一种会TLE。 第一种是高一数学题做法,设一个妖怪的atk和dnf分别为x和y,则它在(a,b)环境下的战斗力为x+y/a*b+y+x/a*b。 设t为b/a,则战斗力即$f(x,y,t)=x+y+tx+\frac{y}{t}$,其中$t\in(0,+\infty)$。 二分答案c,问题 阅读全文
摘要:
首先有一个显然的$O(n^2)$暴力做法,将每个位置看成点,然后将所有限制相等的数之间用并查集合并,最后答案就是9*(10^连通块的个数)。(特判n=1时就是10)。 然后比较容易想到的是,由于每次合并的是一个区间,逐个合并点过于浪费时间,考虑用线段树建图优化复杂度,但发现线段树建图并不能支持题目中 阅读全文
摘要:
1.题意表述十分难以理解,简单说就是:有n个单词,确定一个背的顺序,使总代价最小。 2.因为第(1)种情况的代价是n*n,这个代价比任何一种不出现第(1)种情况的方案都要大,所以最后肯定不会出现“背某个单词的时候它的后缀还没背”的情况。 3.考虑将每个串和单词表中它的最长后缀连边,则形成了一棵树。我 阅读全文
摘要:
https://blog.csdn.net/xyz32768/article/details/81591955 首先区间DP和状压DP是比较明显的,设f[L][R][S]为将[L,R]这一段独立操作最终得到的字符序列为S的最大收益。其中S的位数为(R-L)%(k-1)+1。 枚举R第一次参与的操作的 阅读全文
摘要:
考虑任何一条垂直于x轴的直线,由于圆不交,所以这条直线上的圆弧构成形似括号序列的样子,且直线移动时圆之间的相对位置不变。 将每个圆拆成两边,左端加右端删。每次加圆时考虑它外面最内层的括号属于谁。用set维护括号序列,每次从插入的位置往上找,如果第一个找到的是上括弧则说明被它包含,如果是下括弧说明和它 阅读全文