[题解][洛谷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的情况,所以只需哪个大取哪个。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】