[题解][洛谷P3584] LAS

题目描述
有n个蛋糕和n个人,每个蛋糕的热量是Ci。
第i个人可以选择吃第i或第i+1个蛋糕,第n个人可以选择吃第n或第1个蛋糕。
若一个蛋糕被两个人吃,那么每个人得到的热量是Ci/2.
若一个人改变自己的选择,得到的热量增加,那么他会不满意。
试输出让所有人满意的解,输出每个人吃蛋糕的序号。

题意分析
本题亦可以使用dp,对每个蛋糕设状态被左边吃/右边吃/两边吃/没人吃。
不过我优先考虑到的是若蛋糕i,满足Ci>=2Ci+1,那么第i个人一定会吃这个蛋糕。
所以可以让第i个人吃这个蛋糕,然后让该蛋糕热量变成Ci/2。
考虑通过优先队列进行这个操作。
做完之后,一个人要么已经选好蛋糕了,要么他左右两边不会满足Ci>=2Ci+1的情况,所以只需哪个大取哪个。

posted @   ZWZWW  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示