bzoj3489专题

[bzoj3489] A simple rmq problem 解题报告

说几种比较傻逼的做法: 考虑一个点i,设它前面第一个和它相等的点的位置是 lasti last_i(若没有就是0),设它后面第一个和它相等的点的位置是 nexti next_i(如果没有就是n+1),则它会产生贡献的区间[l,r]要求 lasti+1≤l≤i,i≤r≤nexti−1 last_i+1\le l \le i,i\le r \le next_i-1。所以如果把询问的区间看作平面上的点

[bzoj3489][kdtree]A simple rmq problem

Description 因为是OJ上的题,就简单点好了。给出一个长度为n的序列,给出M个询问:在[l,r]之间找到一个在这个区间里只出现过一次的数,并且要求找的这个数尽可能大。如果找不到这样的数,则直接输出0。我会采取一些措施强制在线。 Input 第一行为两个整数N,M。M是询问数,N是序列的长度(N<=100000,M<=200000) 第二行为N个整数,描述这个序列{ai},