请问这个题用优先队列贪心为什么不行?
查看原帖
请问这个题用优先队列贪心为什么不行?
300078
pengyule楼主2021/11/16 12:11

题目:链接
代码:链接
思路:首先求出每条边被算了多少次(子树中叶子数量),然后使用两个优先队列,每条边将logw个结构体{结构体编号y,△w,c}(其中△w表示整除2后减少的量乘以边的被算次数)放进优先队列里,一个优先队列以性价比(边的(ww/2)被算的次数÷代价边的 (w-w/2) * 被算的次数 ÷ 代价)为比较方式的大根堆,一个优先队列存代价为1的结构体、以△w的大小为比较方式的大根堆。每一次贪心地从第一个优先队列里取结构体,如果取出来的△w大于等于现在还需要减少的量,就选它,否则考虑第二个优先队列中没有被取过的结构体中有没有△w大于等于现在还需要减少的量的,有就取那么代价为1,没有就只能取刚才第一个优先队列里代价2的。
错误:WA on test #27

劳驾费时了!

2021/11/16 12:11
加载中...