[wikioi 1307][poj 2054]欧少堆(乱搞)
生活随笔
收集整理的這篇文章主要介紹了
[wikioi 1307][poj 2054]欧少堆(乱搞)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:http://www.wikioi.com/problem/1307/
題意:給你一個樹,上面有n個節點,每個節點都有一個價值p,求一個n個節點的排列順序,是的Σi*p[i]最小(要求父節點一定要在子節點的前面)
分析:
首先如果沒有父節點和子節點,那么這題就是一道弱弱的排序題,根據排序不等式,策略就是p越大的就放越前面
雖然此題有了這樣的限制,但是肯定也希望P越大的在前面越好,那么對于一個點它能放的最大的在哪里呢?當然是緊接在它父節點的位置后面!!!!
于是我們可以先把每個點的權值加入優先隊列中去,從中找出一個最大的權值點,將其與父節點合并成一個新節點,那么關鍵是這個節點的權值怎么處理呢?取平均值!
http://www.cnblogs.com/rainydays/archive/2013/08/20/3271277.html
這里引用神犇的博客……
然后就很簡單的用堆維護就行了……
轉載于:https://www.cnblogs.com/wmrv587/p/3847539.html
總結
以上是生活随笔為你收集整理的[wikioi 1307][poj 2054]欧少堆(乱搞)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 块不支持的字符
- 下一篇: Tuning SQL via case