#2472. 「九省联考 2018」IIIDX

一眼思路的题…
就是比较难写..

考虑一个点必须小于其 \lfloor \frac{id}{k} \rfloor 那么容易想出一个树形结构,每个点都大于其父亲.
那么对于一个点,那么他能选取的最大值就是当前能选的所有点中的 n - size[id]这个点的值。
然后留够其儿子的位置即可。
最后如果有相同的点,容易想到把当前点放在权值相同的最前面处

c++代码如下:

 

9 + 5 =