线段树
caozhining
这个作者很懒,什么都没留下…
展开
-
CF830B Cards Sorting
题目传送门 题意 你有一个长度为 nnn 个队列,你每次取出这个队列的队首,如果这个数是队列中最小的数那么就把他丢掉,否则就放在队列的队尾。 解题方法 我们首先就想到了暴力的做法,每次枚举第一个然后扔到后面去,复杂度是o(n2)o(n^2)o(n2)的,发现根本过不了,于是我们就要想到一些优化,我们发现这个队列就和一个环一样,所以我们先把原来的aaa数组复制一遍,因为我们每次取出下一个被扔走的数一...原创 2019-10-25 13:20:23 · 332 阅读 · 0 评论 -
线段树
线段树是一个十分好用的数据结构,很多的高级数据结构都是基于线段树的,所以说把线段树的根基打好了,后面才能学的好一些,首先来说一下这个数据结构在干些什么,这个数据结构包含了2种操作就是修改和查询,每次修改和查询的时间复杂度是O(logn)O(logn)O(logn),朴素的做法一般修改的时间的复杂度是O(1)O(1)O(1),但是查询的时间基本上是O(n)O(n)O(n)。 然后,我来介绍一下这个线...原创 2019-02-26 17:53:26 · 127 阅读 · 0 评论 -
洛谷3801 红色的幻想乡
传送门 这个题呢就是一个线段树+容斥原理的题,二维线段树我也不会这个题就是用两个线段树,一颗线段树就是求有多少列被修改过,另一颗线段树就是求有多少行被修改过,每次修改就是将他所在的行和列都修改一下,当询问的时候就询问x1到x2的和与y1到y2的和然后进行容斥原理,就可以得到答案了,以下是代码 #include<iostream> #include<cstdio> #incl...原创 2019-02-26 21:36:23 · 151 阅读 · 0 评论