把一个人看成二维平面上的一个点,把一个K[i]看成左上角为(0,+max),右下角为(K[i],K[i])的一个矩阵,那么可以很好地描述人对于询问是否合法(我也不知道他怎么想到这东西的) 然后把一组询问排序,按照K[i]从小到大依次处理,定义一个取点的方式为尽量取纵坐标小的点,那么可以构造出一种方案使得对于每一块区域不能取的点的最大纵坐标递减 (我也不知道他怎么想到这东西的) 单调栈维护每一块被取过的点的最大纵坐标,那么随着K[i]的增大,区域会被合并 二维平面数点,主席树 #include<c…