还行的数数题,感觉并不难。
在 的情况下,我们似乎很难去设计 DP 状态。考虑从别的角度思考。
考虑限制的条件,发现:
- 不存在相邻的 。
- 若 ,则 ,需满足 。
注意第二个条件我们不好处理。我们考虑将所有数按照 从大到大排序,若相同我们将大的排在前面。尝试按照这个顺序依次插入,这样我们始终在满足条件一的前提下始终满足条件二。过程中我们只能插在两个 的数中间,我们维护这样的位置即可。注意到中间可能会有数值相同的数,但是答案中视作相同,所以我们乘上逆元即可。时间复杂度 ,瓶颈在于排序。
其实实现的时候可以直接按照 从大到小排序,然后用双指针分别从首尾扫。
未找到相关的 Issues 进行评论
请联系 @KevinLive 初始化创建