tokitsukaze and Soldier 优先队列
题目链接
题意
n个士兵,每个士兵有两个值,战力vi,人数si,从n个人中选任意个人组成一个团,求团的战力最大值,团的战力是所有士兵的战力和,如果选到了士兵i,那么团的人数不能超过si。
思路
优先队列。
首先,很容易想到的思路就是,假设现在是要选k个人,那么把士兵里si>=k的取出来,再选战力最大的k个士兵即可。可以用优先队列维护前k大和,那么考虑从大到小枚举k(队列里的元素都是能容许k个人的候选士兵,如果加入一个容许k+1人的士兵进去,前k+1的士兵中可能出现si<=k的士兵;那如果是加入一
原创
2020-06-25 18:57:54 ·
184 阅读 ·
0 评论