随笔分类 - RMQ
摘要:题意:给出一个非降序的数组,给出Q个询问,每个询问给出起点和终点,问在这个区间中出现频率最多的数字的次数。思路:这题可以用线段树,不过最近在学RMQ,所以用ST做的。这题的难点在于初始化,初始化后直接套模板就行了,来说说初始化吧。一个区间会出现三种情况:1、1111111111111,整个区间都被同一个数字占据,那么直接返回(r-l+1)就行了,2、1111122222222,整个区间只由开始和结尾两种数字组成,这种情况返回两者中较大的。3、11111222233333,区间中除了两头的数字还有其他数字,那么就用ST求出最大值就行了。对于每个数字出现的次数,用两个数组来存,一个数组存到目前为止
阅读全文
摘要:好几天没写博,还是没形成习惯啊,最近都在做线段树和树状数组方面的题,树状数组和线段树有一些相似的地方,有些题既能用线段树又能用树状数组,所以就都先用一下,不过还是不熟练。那好吧,几天补齐前几天的博。题意:给出N个数字和Q个询问,每个询问给出起始位置和终止位置,求出这段区间中最大数字和最小数字的差。思路:RMQ的思想就是求一个区间中的最值,用ST求出区间最大值和最小值,然后求差。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream&g
阅读全文

浙公网安备 33010602011771号