gay专题

hdu5172 GTY's gay friends

题意:一个数列,有m组询问l,r,需回答l-r是否为一个1-r-l+1的排列。 分析:n个数为1-n的一个排列需满足两个条件,1.和为(n+1)*n/2,2.所有数不相同。1预处理前缀和即可,2先需处理每个数左边与其最近的相同数的位置pre[i],用线段树维护区间l-r各个数pre[i]的最大值mx,若mx<l则满足条件。 #include<iostream>#include<strin