搞了这么久,终于做了一个离线线段树。。。。个人觉得,如果询问间会相互影响到的话,就用所谓“离线”来搞。。。
这个题,考虑从左到右一个一个地加数,加到a[i]时,如果a[i]-1或a[i]+1有一个加过,总段数不变,都加过,合并两端,段数减一;如果都没加过,加入a[i]相当于新加了一段。
将所有询问按右端点从小到大处理(一个大的区间,增加的元素会对小的区间造成影响);边处理边加数。
include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include