CodeForces - 1369E DeadLee(贪心+拓扑)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 1369E DeadLee(贪心+拓扑)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:Lee的廚房中有 n 道菜,每道菜的數量為 w[ i ] ,現在 Lee 會邀請 m 個朋友,每個朋友都有最愛吃的兩道菜 x[ i ] 和 y[ i ] ,當朋友 i 來到 Lee 家后,會選擇吃掉 x[ i ] 和 y[ i ] 各一份,如果 x[ i ] 沒有了的話,那么他只會選擇吃掉一份 y[ i ] ,如果 y[ i ] 沒有了的話同理,但是如果 x[ i ] 和 y[ i ] 同時沒有的話,這個朋友就會吃掉 Lee,問 Lee 能否安排一個合適的順序以保證存活,輸出這個順序
題目分析:讀完題后,需要發現的一個重要信息是,設 sum[ i?] 為每道菜的需求量,那么如果 sum[ i ] <= w[ i?] 的話,那么這 sum[ i ] 個人是一定可以吃到菜的,我們只需要將其安排在最后來吃就好了,同理,如果所有的 sum[ i ] > w[ i ] 成立的話,那么將會是無解的,因為假設 min_w 為所有 w[ i ] 中的最小值,那么至少會有 min_w 個人需要吃兩個菜,換句話說我們無論安排誰最后來,都是需要吃兩個菜的,這與我們的貪心策略不符
分析完后,實現的話用拓撲的思想就好了,只不過將拓撲中 du[ i ] == 0 的條件換成了 sum[ i ] <= w[ i ] 而已
代碼:
?
?
總結
以上是生活随笔為你收集整理的CodeForces - 1369E DeadLee(贪心+拓扑)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU - 6356 Glad You
- 下一篇: HDU - 4902 Nice boat