P5584 「SWTR-1」Sunny's Crystals
题目背景
小 $\mathrm{S}$ 喜欢收集水晶。
题目描述
小 $\mathrm{S}$ 有 $n$ 个水晶,每个水晶有一个属性 $d_i$ ,为这个水晶的**价值**。
有一天,小 $\mathrm{A}$ 来到了 小 $\mathrm{S}$ 家,让 小 $\mathrm{S}$ 把他的水晶排成一个序列,并且摧毁所有价值为 $w$ 的水晶。
但是,由于这个序列的特殊性,你的每次摧毁必须要满足:
- 该水晶在序列里的位置**必须要是 $2$ 的次幂**,即你只能摧毁在 $2^x$ 这个位置上的水晶,$0\leq x \leq \log_2 y$ 且为整数,其中 $y$ 为现在序列里水晶的个数。
摧毁后,**所有在该水晶后面的水晶都会向前移动一格**。
例如,水晶价值序列 $6\ 10\ 4\ 7\ 8$,你只能摧毁位置为 $1,2,4$ 上的水晶。
如果摧毁 $2$ 号水晶,序列就会变成 $6\ 4\ 7\ 8$。
为了节省时间,小 $\mathrm{S}$ 想知道**最少**多少次可以摧毁所有价值为 $w$ 的水晶,且第 $i$ 次摧毁的水晶初始位置是什么。
**本题使用 Special Judge**,如果有多种答案,任意输出一种即可。
输入格式
无
输出格式
无
说明/提示
---
### 样例说明
样例 $1$:
先摧毁后面的 $4$,初始位置为 $4$,**价值**序列变成: $1\ 4\ 2\ 5$。
再摧毁前面的 $4$,初始位置为 $2$。
总次数是 $2$ 次。
样例 $2$:
先摧毁第 $1$ 个 $2$,初始位置为 $2$,序列变成:$1\ 2\ 2\ 2$。
再摧毁剩下的第 $1$ 个 $2$,初始位置为 $3$,序列变成:$1\ 2\ 2$。
再摧毁第一个 $2$,初始位置为 $4$,序列变成:$1\ 2$。
再摧毁第一个 $2$,初始位置为 $5$。
总次数是 $4$ 次。
---
### 数据范围与约定
对于 $15\%$ 的数据,有 $n\leq5$。
对于 $25\%$ 的数据,有 $n\leq20$。
对于 $30\%$ 的数据,有 $n\leq1000$。
对于 $35\%$ 的数据,有 $n\leq10000$。
对于 $50\%$ 的数据,有 $n\leq3\times 10^5$。
对于 $80\%$ 的数据,有 $n\leq10^6$。
对于 $100\%$ 的数据,有 $1\leq n\leq3\times 10^6,1\leq d_i\leq 40000$,保证 $w$ 的个数不大于 $1.5\times 10^6$。
---
碎掉的水晶在阳光下闪闪发光……