POJ_2828 Buy Ticket(线段树)

  跟2182一样,都是找空。把数据倒插,pos[i]表示前边有pos[i]个空位,每填一个空位就把那个空位删掉。

例如(0表示空位):

0 20

1 19

1 38

0 31

初始空位:

1      2      3      4

0      0      0      0

把第n个数填到pos[n]+1空位上:

1      2      3      4

31     0      0      0

第n-1个:

2      3      4

0     38      0

第n-2个:

 2      4

 0      19

第一个:

2

20

最后的结果就是

1      2      3      4

31      20      38      19

用线段数把1-n之间的空位数存起来,然后没次查询都更改一次

原文地址:https://www.cnblogs.com/vongang/p/2135816.html