摘要:
有一个长度为n(n<=100000)的有序序列,对于Q(Q<=100000)条询问(x,y)输出区间[x,y]中出现次数最多的数的次数。用maxl表示包括左端点的最长重复数的个数maxr表示包括右端点的最长重复数的个数sum表示在该区间内重复数的最大个数,那么就很容易建立线段树,由儿子节点去求父亲节点,具体的规划式在程序里很清楚。View Code 1 program pku3368(input,output); 2 type 3 node = record 4 left,right,x,y,maxl,maxr,sum : longint; 5 ... 阅读全文
摘要:
求区间最值之差,需要Qlogn的算法,可以用线段树或者ST。线段树1750msView Code 1 program pku3264_line_tree(input,output); 2 type 3 node = record 4 left,right,x,y,minx,maxx : longint; 5 end; 6 var 7 tree : array[0..500000] of node; 8 n,q : longint; 9 a : array[0..200000] of longint;10 to... 阅读全文