![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构——线段树
MMMyrcellaaa
虽然现在还是一个蒟蒻。。。但相信我能成为大佬的!!orz
展开
-
Codeforces-85D Sum of Medians
题目大意:对于一个每个数最多出现一次的序列,可以有add del两种修改和查询三种操作。对于每个查询操作,输出该序列排序后 线段树每个区间分别维护0 1 2 3 4五种余数的位置上数的和。注意这里的位置是相对于每个区间的而非整个序列。另外,还需维护每个区间中当前存在的数字的个数(cnt数组)。这一步的作用是在sum转移时,对于每一个sum[v][i],从右子树转移时不能直接用sum[rc][...原创 2019-05-04 19:01:08 · 209 阅读 · 0 评论 -
Codeforces-1000F One Occurrence
题目大意:多次查询一个最长可达1e5的数列中指定区间内只出现一次的数。 这是一道线段树题。首先想到的是对于每个区间维护其中每个元素的下一个元素出现的位置中最大的一个。nxt维护当前位置的下一个数字相同的位置。每次query返回该区间的线段树值即可。因为要求的是数字,所以线段树不仅要维护当前区间最大的nxt,还要维护nxt最大的这个位置。(ps程序中的nxt和这里的描述有些出入,nxt[i]维护的...原创 2019-05-04 18:11:54 · 460 阅读 · 0 评论 -
Codeforces-3D Least Cost Bracket Sequence
首先需要明确的是括号序列合法的条件: 如果令左括号为1,右括号为-1,为这个1 -1序列到第i个位置的前缀和,那么必须保证对于每一个i,的值都是非负的,且 这道题首先想到的是dp的做法。 表示考虑到第i个位置左括号与右括号差为0的情况。转移也是非常简单的。但时间空间似乎都是不太行的。因为dp状态跑不满所以侥幸心理尝试了一下,失败。评测结果为mle 31,正确性应该是有保障的。 #incl...原创 2019-04-05 16:11:25 · 190 阅读 · 0 评论