
线段树和树状数组
。
SSL_CWH
这个作者很懒,什么都没留下…
展开
-
【YbtOJ 线段树 - 2】公园遛狗
公园遛狗题目输入输出小白每出去玩一次,都对应输出一行,只包含一个整数,表示小白可以选出的公园得分和的最大值输入样例5 31 2 -3 4 51 2 32 2 -11 2 3输出样例2-1解题思路这题是一题经典线段树的做法,我们是通过找一个分界点的前缀和后缀进行合并,有可能就是这个区域最大然后我们就用线段树来维护这个区间最大程序如下#include<algorithm>#include<iostream>#include<c原创 2021-08-02 17:07:10 · 332 阅读 · 0 评论 -
【YbtOJ 线段树 - 2】区间查改
区间查改题目输入输出输入样例5 102 6 6 1 12 1 41 2 5 102 1 32 2 31 2 2 81 2 3 71 4 4 102 1 21 4 5 62 3 4输出样例1534323350解题思路就是线段树直接上即可程序如下#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>原创 2021-07-21 22:08:07 · 294 阅读 · 0 评论 -
【YbtOJ 线段树 - 1】求区间和
求区间和题目给定一数列,规定有两种操作,一是修改某个元素,二是求区间的连续和输入输出对于每个询问输出对应的答案输入样例10 200 1 101 1 40 6 61 4 101 8 91 4 90 10 21 1 80 2 101 3 90 7 80 3 100 1 11 3 81 6 90 5 51 1 80 4 21 2 80 1 1输出样例1060616624145041解题思路我们这题用的是线段树,没啥好说的原创 2021-07-12 17:01:07 · 300 阅读 · 0 评论 -
【YbtOJ 树状数组 - 3】严格上升子序列数
严格上升子序列数题目输入输出输入样例23 21 2 33 23 2 1输出样例Case #1: 3Case #2: 0解题思路我们设dp(i,j)dp(i, j)dp(i,j)为第iii个数结尾,长度为jjj的严格上升子序列个数考虑到式子有类似于逆序对的操作,我们要先将数组离散化,再建mmm个树状数组来维护方案数,来优化DPDPDP程序如下#include<algorithm>#include<iostream>#includ原创 2021-07-08 16:49:11 · 253 阅读 · 0 评论 -
【YbtOJ 树状数组 - 2】逆序对
逆序对题目输入第一行为整数 nnn ,表示序列长度第二行 nnn 个整数,表示给定的序列输出输出逆序对总数输入样例43 2 3 2输出样例3解题思路我们这题先从左到右枚举,来计算aia_iai的逆序对,但是这样时间复杂度为O(N2)O(N^2)O(N2)显然不太优,那么我们就可以考虑用树状数组来进行优化,我们依旧先从左到右枚举每次在树状数组中下标aia_iai的位置加一,查询树状数组中下标大于aia_iai的区间的元素个数,然后进行累计答案即可程序如下原创 2021-07-08 15:54:24 · 148 阅读 · 0 评论 -
【YbtOJ 树状数组 - 1】单点修改区间查询
单点修改区间查询题目输入输出对于每个 222 lll rrr 操作输出一行,每行有一个整数,表示所求的结果输入样例3 21 2 31 2 02 1 3输出样例6解题思路这题用的是树状数组,树状数组支持单点加操作,还支持查询前缀和,这题我们就直接可以用到程序如下#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>us原创 2021-07-08 15:26:38 · 192 阅读 · 0 评论 -
【线段树】线段树练习题四
线段树练习题四题目在平面内有一条长度为n的线段(不计入答案),可以对进行以下2种操作:1、把从x到y的再加一条线段2、查询从x到x+1有多少条线段输入第一行输入n,m第2~m+1行,每行2个数x,y,表示从x到y再加一条线段最后一行输入2个数,为x和x+1,查询x到x+1的线段数目输出输出x到x+1的线段数目输入样例7 22 53 64 5输出样例2数据范围...原创 2019-08-22 20:46:57 · 216 阅读 · 0 评论 -
【线段树】线段树练习题三
线段树练习题三题目给定一条长度为m的线段,有n个操作,每个操作有3个数字x,y,z表示把区间[x,y]染成颜色z,询问染完色之后,这条长度为m的线段一共有几种颜色。规定:线段的颜色可以相同。连续的相同颜色被视作一段。问x轴被分成多少段。输入样例4 20 //四条,总长度为2010 19 12 9 25 13 315 17 4输出样例7数据范围N <= 1000...原创 2019-08-22 16:30:29 · 149 阅读 · 0 评论 -
【线段树】线段树练习题二
线段树练习题二题目桌子上零散地放着若干个不同颜色的盒子,桌子的后方是一堵墙。如右图所示。问从桌子前方可以看到多少个盒子?假设人站得足够远(输入时,由底向上,从左到右)。输入样例16//桌子长度5//盒子数量4 712 141 56 1011 16输入样例4数据范围1<=n<=100000,1<=m<=100000,保证坐标范围为[1,n]....原创 2019-08-22 15:42:43 · 123 阅读 · 0 评论 -
【离散化】【线段树】线段树练习题一
线段树练习题一题目桌子上零散地放着若干个盒子,桌子的后方是一堵墙。如右图所示。现在从桌子的前方射来一束平行光, 把盒子的影子投射到了墙上。问影子的总宽度是多少?输入第一行,一个数 TTT 代表桌面总宽度第二行,一个数 NNN 代表盒子数量接下来,NNN行,每一行两个数,aaa和bbb 代表盒子的长度输出影子的长度输入样例2041 53 87 1013 19输出样...原创 2019-08-18 16:26:01 · 173 阅读 · 6 评论