提供一种基于 二分+贪心 的 n log n 做法
查看原帖
提供一种基于 二分+贪心 的 n log n 做法
321529
Remarks楼主2024/5/26 17:23

CODE : https://www.luogu.com.cn/record/160374164

代码比较抽象,细节为了省事用了各种神秘的实现,望原谅。

这份代码是 nlog⁡2nn \log^2 n 的,将 sort 更换为桶排序即可做到 nlog⁡nn\log n 。

具体实现:

考虑最后答案一定是若干 9 在头,后面接一串未知的数,我们直接二分前面 9 的数量,可以发现:转化为判别性问题后,所有位置是等价的,故先给更小的数上 2 操作,然后再给剩余的数上 1 操作这一贪心策略具有了正确性。

然后看后面的部分,容易发现下一位一定不是 9 (已经找到了最长),所以下一位一定不用 2 操作,而是用 1 操作;同时 1 操作不可能使这一位超过 9 ,直接加,同时我们用完了所有的 1 操作,剩余位置,用剩余的 2 操作直接尽可能的把高位变 9 即可实现。

另外吐槽一句,数据过于水了,以至于一种错误的贪心 做法 通过,建议加强数据。

2024/5/26 17:23
加载中...