摘要:
原题链接:https://www.luogu.com.cn/problem/P2572 题意解读:对于01序列,支持几种操作:0.将区间值全变成0 1.将区间值全变成1 2.将区间值全部取反 3.查询1的个数 4.查找连续最多1的个数 解题思路:区间修改,区间查询,又是线段树的典型应用。 要查询的值 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P4145 题意解读:对于序列a[n],支持两种操作:1.对区间[l,r]内每个数开方 2.查询区间[l,r]每个数的和 解题思路:区间修改,区间查询,可以用线段树解决。 咋一看,需要借助于懒标记来修改节点,但仔细分析,开方 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P5522 题意解读:有若干0/1/?组成的字符串,支持两种操作:1.将制定位置字符串修改成新字符串;2.查询区间内字符串能否统一成一个字符串,求有多少种可能;将2的所有结果异或起来,再和0异或,输出最终答案。注意:?表示可 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1558 题意解读:给定序列a[n],初始都为1,支持两种操作:1.将区间[a,b]所有值都改为c;2.查询区间[a,b]范围有多少个不同的数;输出所有操作2的结果。 解题思路:又是线段树的典型应用,要支持区间修改,需要用 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1637 题意解读:统计序列a[1]~a[n]中三元上升子序列的个数,三元上升子序列是指对于1<=i<j<k<=n有a[i]<a[j]<a[k],(a[i],a[j],a[k])成为一组上升子序列。 解题思路: 1、先思考 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P6492 题意解读:一个序列,初始L,可以指定一个位置修改,L修改成R,R修改成L,可以令L=0,R=1,然后每次修改后输出序列最长不连续0、1(0/1交替出现)的长度。 解题思路:序列支持单点修改(0->1,1->0), 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1471 题意解读:给定序列a[n],支持三种操作:1.将区间每个数加上一个数 2.查询区间的平均数 3、查询区间的方差 解题思路:要支持区间修改和查询,首选线段树,下面看线段树节点需要维护的信息 平均数 = 区间和 / 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P4513 题意解读:给定序列a[n],支持两种操作:1.查询区间[l,r]内的最大子段和 2.将a[x]修改成s,输出其中每一个查询操作的结果。 解题思路:区间问题依然想到线段树,问题主要在于线段树的节点要维护哪些信息: 阅读全文