摘要: 比赛的时候感觉是线段树,直接求,超时了。看了题解,才知道是有点规律的,要先固定端点,求出所有以该端点为左端点的区间,然后不断移动左端点,直到求出所有区间。用nxt[i]存储下一个出现a[i]的下标。先求出所有的mex(1,i)再删除a[1],则在区间(2,nxt[1]-1)上mex(2,i)>a[1]的值全部改为a[1],因为mex(2,i)是递增的,所以可以求出第一个大于a[1]的mex(2,i)的下标,然后进行区间更新。以此类推,从左到右删除所有元素,就可以得出答案。 1 #include 2 #include 3 #include 4 #include 5 using name.. 阅读全文
posted @ 2013-09-18 18:20 sooflow 阅读(770) 评论(0) 推荐(0) 编辑