题目链接:[CodeForces555B]Case of Fugitive[贪心][优先队列]
题意分析:依次排列成行的岛屿间需要假设桥梁,问:是否能在岛间都搭上桥?能,输出每个隔间需要的桥号。否则,输出"No"。
解题思路:贪心。按桥的长度升序排列,按岛屿间的最短距离island[i + 1].l - island[i].r升序排序。每次记录当前桥能搭上的岛屿数,然后把桥搭在这些岛屿中,岛屿间距离island[i + 1].r - island[i].l最小的那个上。
下面小小证明下这个贪心思路:当当前桥能搭上这些岛屿时,说明后面的桥都能满足大于这些岛屿最小间隔,但是不一定满足这些岛屿最大间隔的最小值。所以每次取出时我们尽量去选择最大间隔小的去放,这样就能使后期最大间隔的最小值变大。
个人感受:贪心贪心,多思考,多思考TAT