
RMQ&LCA
文章平均质量分 80
wjf1514
这个作者很懒,什么都没留下…
展开
-
UVA 11235/HDU 1806/POJ 3368 Frequent values
RMQ.按非降序给出一列数,对于每个询问,回答区间内出现最多的数出现的次数。先把数据压缩一下,记录每个数字出现的次数,开始以及结束位置。那么询问的区间L,R可以分为三部分:L所在区域,R所在区域,和中间。L所在区域:L到该区间右端点的距离。R所在区域:该区间左端点到R的距离。中间部分就是一个RMQ,求区间最值。当LR在同一区域时,直接算就行。#pragma comment(linker原创 2013-09-25 11:33:05 · 821 阅读 · 0 评论 -
HDU 3183 A Magic Lamp
RMQ.感觉找规律也可以做,但我只想到了一个很麻烦的规律,不好实现。从n位数中删去m位,使剩下的数最小,求这个数。答案一定是n-m位,那么它的第一位应该尽量小,不然的话后边再小也没用,比如19999和20000,所以首位要最小。那么首位可选的区间是什么呢?假设答案是个k位数,第一位从输入数字的第零位开始,只要给剩下k-1位各留一个就行,所以右端点就是n-k+1,而k=n-m,所以就剩下m+1了原创 2013-09-26 08:48:35 · 610 阅读 · 0 评论 -
POJ 1330 Nearest Common Ancestors
LCA入门题,虽然这样说,但是没有用到LCA,因为询问只有一组。就用最最直白的方法。所谓最近公共祖先,就是两个点分别向上走,直到根,两条路径第一个相遇的点就是两个点的LCA。#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include原创 2013-09-26 18:06:59 · 605 阅读 · 0 评论 -
POJ 1470 Closest Common Ancestors
LCA入门题。给一颗树,若干询问,对每个询问输出它们的LCA。离线算法(Tarjan)模板。#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include///LOOP#define REP(i,原创 2013-09-26 18:12:33 · 595 阅读 · 0 评论