倒着往队列里面插,每插入一个位置,就说明这个位置已经有人占了,删除这个位置。
比如说数据 pos value,那么就寻找队列中除去已经有人占据的位置后的第pos+1个位置。
我的代码是用标准规格的线段树写的,节点有left,right,cnt(记录该区段内被占据的位置的数量)域。
看到有些别人的代码,直接只用节点记录该区段内剩余有效位置数量,把insert和search操作结合,是个很不错的简化方式。
倒着往队列里面插,每插入一个位置,就说明这个位置已经有人占了,删除这个位置。
比如说数据 pos value,那么就寻找队列中除去已经有人占据的位置后的第pos+1个位置。
我的代码是用标准规格的线段树写的,节点有left,right,cnt(记录该区段内被占据的位置的数量)域。
看到有些别人的代码,直接只用节点记录该区段内剩余有效位置数量,把insert和search操作结合,是个很不错的简化方式。