线段树
文章平均质量分 72
1
hesorchen
这个作者很懒,什么都没留下…
展开
-
CF1430E贪心、树状数组
题目E. String Reversal给出一个小写字母字符串aaa,现有一个aaa的翻转字符串bbb,每次可以交换aaa中两个相邻的字母,问至少交换多少次可以得到字符串bbb。求解设字符串aaa为aabbc,则字符串bbb为cbbaa贪心考虑,枚举字符串bbb中的字符,每次优先选择字符串aaa中最近的相同字符交换过来。接下来需要维护最近的相同字符的贡献。首先用26个双端队列,保存26的字母出现的每个位置。对于bbb串的第一个字符ccc,在aaa串中的位置为5,要将字符ccc交换至第一个位置,原创 2021-08-17 10:26:26 · 167 阅读 · 0 评论 -
洛谷p1637三元上升子序列
题目链接求序列中i<j<k且a[i]<a[j]<a[k]的三元组数量i< j<k且a[i]<a[j]<a[k]的三元组数量i<j<k且a[i]<a[j]<a[k]的三元组数量类似于线段树求逆序对,前后跑两遍即可。AC代码:#define MAX 500010struct node{ int k, l, r, sum;} tr[4 * MAX];int a[MAX];int b[MAX];void pushu原创 2020-09-12 11:25:33 · 3636 阅读 · 0 评论 -
洛谷P3373线段树
洛谷P3373线段树模板题,主要对懒标的处理要求比较高。有三种操作:区间加法区间乘法区间求和查询tips:我们对一个区间进行乘k操作的时候,他之前可能存在加法lazy还没pushdown,这时候,加法lazy和乘法lazy都需要乘k。因为这个lazy是为儿子节点准备的,儿子还没进行加法操作,这次的乘法肯定也会作用于前面的加法。另外,线段树的一些基本知识点漏洞这次也暴露了出来: pushdown操作,我们知道,每个结点的懒标都是为儿子结点准备的,所以在查询/修改到x结点的时候不需要pushd原创 2020-09-11 10:47:28 · 3721 阅读 · 0 评论 -
牛客寒假集训营 子段乘积
题目传送门这题应该用尺取也可以写,不过需要用到逆元知识?反正我到现在也还不会,不过线段树倒是可以写了。struct node{ int k, l, r; ll v;} tr[800010];ll p[200010];inline void update(int k){ tr[k].v = tr[k * 2].v * tr[k * 2 + 1...原创 2020-04-01 10:50:30 · 5162 阅读 · 0 评论 -
Mayor's posters 线段树+离散化+桶
简单说下题意:就是在一个宽1e7墙上面贴n张海报,第i张海报的起点是li,终点是ri,显然海报会覆盖别的海报。问依次贴完n张海报之后最后能看见几张海报。题目要求最后能看见多少张海报,那么我们将每张海报都分别标上序号1,2,3…n。然后线段树修改区间,最后看线段树最底层有多少种数字即可。需要注意的几点:海报终点可能到1e7,我们要做的区间修改以及最后桶排计数工作量就会非常大,但是只有...原创 2020-03-04 09:23:05 · 5175 阅读 · 0 评论 -
Distinct Characters Queries 线段树+桶
You are given a string s consisting of lowercase Latin letters and qqueries for this string.Recall that the substring s[l;r]of the string s is the string slsl+1…sr. For example, the substrings ...原创 2020-02-28 16:54:56 · 5235 阅读 · 0 评论 -
逆序对
题目链接: 洛谷P1908逆序对:序列a中 ai>aj 且 i<j 的有序对树状数组和线段树解法类似,因为只需 用到单点修改。解题思路:我们将整个线段树看成桶,每次输入一个ai可以看成单点修改,tree[ai]++,此时,线段树[ai,max]的区间值就是以ai为后者的逆序对数量。因为这题中,ai可能高达1e9,这样线段树作为桶可能会炸空间,但是最多只有50000个数...原创 2020-02-27 18:03:54 · 5675 阅读 · 2 评论 -
线段树模板
先给出一个很裸的线段树板子题:开始给你n个数,标号依次为a[1],a[2]…a[n],接下来有m次操作。每次让你执行两个操作:1.将区间[a,b]内的所有数+k。2.查询[a,b]范围内所有数的总和。遇到这种题,我们就可以用线段树解决。(至于暴力会超时,我之前写的树状数组博客中已经提到。)至于线段树比较快的原因,我就不多提了 (很多博客都有提及) ,总之它的区间修改以及区间查询都是log级...原创 2020-02-26 09:16:43 · 4955 阅读 · 1 评论