关于 砍竹子 讲错了的补充说明

讲错了,我会自己上烤架qwq

这题去年根本就没写出来我干嘛要讲他
题目链接


这个题洛谷给的是1s的时间限制,最近两天临近开学,不想学新东西,于是想着把这一题看能不能优化一下。(蓝桥杯官方题目链接这个题给的时间复杂度是2s)

我把之前不完全正确的代码放到了蓝桥杯官网提交,不交不知道,一交吓一跳,看了此题评论区后才发现,卡时间复杂度是小问题,但是这个题同时也卡精度,函数返回的是
不能准确的记录
的返回值。然后发现视频中错误更大的地方。
空降
培训视频的58:58这个地方。
改正
评论区这个大佬采取的二分的思路来解决 的精度问题,通过二分,一次一次的去试中间值是否符合向下取整的条件,符合了缩小区间直到准确值。
关于此题思路
采用优先队列去砍树,用pair存储树的高度和编号,这样就可以不用重载运算符,就能达到大的在前面(优先队列的话pair默认从大到小)如果优先队列中队头的数的高度和我们要砍的那棵树高度一致并且编号是我们要砍的下一位,就砍,然后放入优先队列中,否则结束此轮砍树,。如果砍完之后树的高度为1的话就不用放入了。
此题难就难在一方面思路不好想,一方面卡了。
AC代码
很抱歉过了那么多天才发现讲错了,膝盖谢罪.jpg。
