题目链接:
http://poj.org/problem?id=3368
题意:
给出n个数和Q个询问(l,r),对于每个询问求出(l,r)之间连续出现次数最多的次数(保证给出n个数按升序排列)。
题解:
线段树存三个信息,L,M,R,分别表示左端点开始的最长连续子段的长度,整段区间最长连续子段长度,从右端点开始的最长连续子段的长度,具体查询与维护方法看代码:
代码:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#define lson (id*2)
#define rson (id*2+1)
#define maxn (400005)
using namespace std;