SDUT OJ 效率至上(线段树)】的更多相关文章

效率至上 Time Limit: 5000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 题意很简单,给出一个数目为n的非有序序列,然后有m次查询.对于每次查询输入两个正整数l,r请输出区间[l,r]的最大值与最小值的差值 Input 第一行:输入两个正整数n,m    (1<=n<=50000,  1<=m<=200000  ): 第二行:输入n个整数  大小范围为[1,100000]; 接下来的m…
题面 传送门 分析 主体思路:若x能引爆y,从x向y连一条有向边,最后的答案就是从x出发能够到达的点的个数 首先我们发现一个炸弹可以波及到的范围一定是坐标轴上的一段连续区间 我们可以用二分查找求出炸弹能波及到最左边和最右边的点,记为[l,r] 然后我们就需要向编号属于区间[l,r]的点连一条有向边 如果直接连边,时间复杂度为\(O(n^2)\) 无法接受,考虑用线段树优化连边 我们将线段树看成一个有向图,每个线段树节点看成图上的一个点,[l,r]向[l,mid],[mid+1,r]连边,叶子节点…
题目描述 Description 在一个荒凉的墓地上 有一个令人尊敬的守墓人, 他看守的墓地从来 没有被盗过, 所以人们很放心的把自己的先人的墓 安顿在他那 守墓人能看好这片墓地是必然而不是偶然..... 因为....守墓人懂风水 0.0 他把墓地分为主要墓碑和次要墓碑, 主要墓碑 只能有 1 个, 守墓人把他记为 1 号, 而次要墓碑有 n-1 个,守墓人将之编号为 2,3...n,所以构成了一个有 n 个墓碑的墓地. 而每个墓碑有一个初始的风水值,这些风水值决定了墓地的风水的好坏,所以守墓人…
A Time Limit: 60ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 给出n(1<= n && n <= 2*10^6)个字符串,每个字符串只包含小写英文字母,且最多有五个.问这n个字符串中出现次数最多的有多少个. 输入 单组输入.第一行输入一个数字n,接下来n行,每行包含一个字符串. 输出 输出一个数字代表答案. 示例输入 5 aba abb w aba z 示例输出 2 释放内存与不释放内存的区别:代码: #include &…
题目大意:给定一个合法的括号序列(只包含'(',')'),有q次操作,对每次操作改变一个位置的括号,求最左端的位置,使得改变这个位置上的括号以后,新序列合法(完全配对). 思路:对于合法的括号序列,如果把括号序列一次进行栈操作,把'('进栈,')'则把最近的'('出栈,令a[i]表示到i位置后栈里面的左括号个数,也就是i位置的左括号数目和右括号数目的差.则原序列对应新的数组a.原序列合法 等价于 对于1<=i<=n,a[i]>=0 恒成立.那么对于把位置pos上的括号改变一下,如果是'(…
题目 给定一组数,要求进行若干次操作,这些操作可以分为两种类型: (1) CMD 1 beg end value 将数组中下标在[beg, end] 区间内数字都变为value (2) CMD 2 beg end 求出数组中下标在[beg ,end]区间中的所有数字的和 分析 树状数组在区间查询和单点修改情况下效率较线段树高一些,而无法像线段树一样在O(logN)的时间内完成区间修改.因此使用线段树解决.使用线段树主要的是定义好线段树节点的状态.(如代码中注释所说,状态一定要明确,且容易计算!)…
线段树+RMQ问题第二弹 上篇文章讲到了基于Sparse Table 解决 RMQ 问题,不知道大家还有没有印象,今天我们会从线段树的方法对 RMQ 问题再一次讨论. 正式介绍今天解决 RMQ 问题的方法之前,我先对 RMQ 问题的概念再一次进行说明.RMQ (Range Minimum/Maximum Query ):中文名为"区间最值查询".RMQ 问题指的是给定一段区间,针对给定区间进行若干次查询,每次给出不同的待查询子区间范围,要求返回子区间内的最大值或者最小值. RMQ 问题…
假设我们现在拿到了一个非常大的数组,对于这个数组里面的数字要反复不断地做两个操作. 1.(query)随机在这个数组中选一个区间,求出这个区间所有数的和. 2.(update)不断地随机修改这个数组中的某一个值. 时间复杂度: 枚举: 枚举L~R的每个数并累加. query:O(n) 找到要修改的数直接修改. update:O(1) 如果query与update要做很多很多次,query的O(n)会被卡住,所以时间复杂度会非常慢.那么有没有办法把query的时间复杂度降成O(1)呢?其中一种方法…
学长推荐了这个博客详细的介绍了线段树的建立.查找.更新: 数组计算机 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description bLue 有一个神器的机器,这个机器可以读入一个数组,并按照用户要求快速地进行数组的处理和计算,它支持如下两种操作: 操作 1:把数组中第 p 个元素的值增加 v. 操作 2:计算数组中 [l, r] 区间内所有数的和. 这个机器就是这么的神奇,但是 bLue 的计算…
方伯伯正在做他的Oj.现在他在处理Oj上的用户排名问题.Oj上注册了n个用户,编号为1-n“,一开始他们按照编号排名. 方伯伯会按照心情对这些用户做以下四种操作,修改用户的排名和编号: 1.操作格式为1 x y,意味着将编号为x的用户编号改为y,而排名不变,执行完该操作后需要输出该用户在队列中的位置,数据保证x必然出现在队列中,同时,1是一个当前不在排名中的编号. 2.操作格式为2 x,意味着将编号为x的用户的排名提升到第一位,执行完该操作后需要输出执行该操作前编号为x用户的排名. 3.操作格式…