
获得徽章 7
赞了这篇文章
赞了这篇文章
赞了这篇沸点
#刷题交流# 打卡第22天,小C来到了一家饭馆,这里共有n 道菜,第i 道菜的价格为 a_i。其中一些菜中含有蘑菇,s_i 代表第i 道菜是否含有蘑菇。如果 s_i = '1',那么第i 道菜含有蘑菇,否则没有。小C希望点k 道菜,且希望总价格尽可能低。由于她不喜欢蘑菇,她希望所点的菜中最多只有m 道菜含有蘑菇。小C想知道在满足条件的情况下能选出的最小总价格是多少。如果无法按照要求选择菜品,则输出-1。解题思路:将菜品根据是否含蘑菇分为两组:一组是含蘑菇的菜品,另一组是不含蘑菇的菜品。
分别对这两组菜品按照价格进行升序排序。
优先从不含蘑菇的菜品中选择,直到选满k道或没有更多的不含蘑菇的菜品可选。
如果还需要选择更多菜品以达到k道,则从含蘑菇的菜品中选择,但要确保不超过m道。
如果在以上过程中无法选到k道菜品,则返回-1。
分别对这两组菜品按照价格进行升序排序。
优先从不含蘑菇的菜品中选择,直到选满k道或没有更多的不含蘑菇的菜品可选。
如果还需要选择更多菜品以达到k道,则从含蘑菇的菜品中选择,但要确保不超过m道。
如果在以上过程中无法选到k道菜品,则返回-1。
展开
7
5