随笔分类 - 线段树
摘要:有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。 对于100%的数据:1<=n,m<=200000,0<=ai<=10^9,1<=l<=r<=n 题解 用主席树维护每个前缀区间中每个数最后出现的位置,查询时如果有某个数出现位置<l那么他就可以选。 有
阅读全文
摘要:string 给定一个由小写字母组成的字符串 s。有 m 次操作,每次操作给定 3 个参数 l,r,x。如果 x=1,将 s[l]~s[r]升序排序;如果 x=0,将 s[l]~s[r]降序排序。你需要求出最终序列。 $n,m<=10^5$ 题解 首先将字符转化为数字,会发现值域为[0,25],而且
阅读全文
摘要:不正常团伙 有n个人站成一行,每个人有一个魅力值,相同魅力值的人会形成一个团伙,定义一个团伙正常当且仅当团伙人数为2,有m个询问:[l,r]中的人组成团伙后,处于不正常团伙的人的魅力值之和。 $n,m,a_{i}<=10^{5}$ 题解 这道题用莫队很好去维护信息,开一个桶就好了。就是一些特判:当前
阅读全文
摘要:DAY 1 优美的字符串 题目描述 给出一个只有'a'和'b'的字符串,希望通过最少的操作后使得所有'b'都在'a'前面。一种操作:每次选取一个'ab'子串变成'bba'。 答案对1e9+7取模,如果不能得到输出-1. n<=1e6 题解 可以发现当两个'a'在一起的时候前面的'a'不可能变到后面去
阅读全文
摘要:DAY 1 期末考试 题目描述 题目大意就是有n个学生和m个学科,第i个学生希望所有学科的成绩在$t_{i}$及之前出来,不然他就会产生C*(最晚的学科出来的时间-$t_{i}$)的不开心值。 现在第i个学科出来的时间有一个初步计划$b_{I}$,但是为了减少不愉快值,有两种操作:使一个学科成绩早出
阅读全文
摘要:描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)删除某个位置的数 (2)求数列某位置的值 题解 一开始想的是平衡树,后来想了想没有骚操作,就只要记录该位置是否有效,删除就变成0,然后查询仿值域线段树查k小。 不晓得如果有插入行不行。 #include<bits/stdc++.h
阅读全文
摘要:描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)修改数列中的一个数 (2)求数列中有多少个数比它前面的数都大 题解 不会就去参考了一下前辈的题解,说是楼房重建的原题,又去参考了楼房重建的题解(滑稽)。 对于本题,建立线段树,区间记录最大值和有多少数比前面的数都大的数的个数sum
阅读全文
摘要:描述 给一个长为N的数列,有M次操作,每次操作时以下三种之一: (1)修改数列中的一个数 (2)求数列中某连续一段所有数的两两乘积的和 mod 1000000007 (3)求数列中某连续一段所有相邻两数乘积的和 mod 1000000007 1<=N<=10^5,1<=M<=10^5,输入保证合法,
阅读全文
摘要:题意 给出一个序列,有两种操作:对[l,r]的数开方(下取整),求[l,r]的区间和 不保证给出的区间[x, y] 有x <= y ,如果x>y,请交换x,y。 n,m<=100000 $\sum_{i=1}^{n}a_{i} \leq 1e18$ 题解 上帝造题的7分钟2很早之前写过了,发现双倍经
阅读全文
摘要:题意 给出n个数,q次操作,两种操作:把ax改成y,求[l,r]的最大子段和。 n,m<=50000,-10000<=ai<=10000 题解 区间问题想到用线段树维护,考虑如何合并区间。 当我们求出两段小区间的最大子段和,那么大区间的最大子段和可能是这两个的其中一个,也可能是中间两个区间拼接的部分
阅读全文

浙公网安备 33010602011771号