

本来不准备说题意的,但是我的小伙伴说题目读不懂…
其实就是,这个小朋友有一推卡片,每张卡片的满意度就是给出的数字
(这个是文字游戏,题目说对i张卡片的满意度是i,但是输入哪里是第i天拿ai卡片,这个i和前面的i指代的不是一个东西,满意度是ai对应的值而不是第几天,,,,这让我很怀疑他们的语文)
然后,小朋友只想要不一样的卡片,所以他把一样的挑出来给妈妈(们??)
但是 妈妈拿卡片是有要求的,小盆友要一次拿三张卡片出来,妈妈拿走最大和最小的
所以小盆友要准备好顺序,但是 当不要卡片的数量是奇数时,就要有一张要的卡片给出去,为了损失最小,基本默认是满意值最小的那张
思路:
贪心!
1.先判断重复个数是不是奇数
2.不是就元组求和,是的在判断最后一个重复元素是不是第一个(最小满意值)
3.不是就和减去最小满意值,是的话就减去第二小
(这一步是因为奇数又是最小的数,那么这个数本来就是要拿掉的,那么再多拿的那个就不能是默认最小,而应该是第二小了)
for _ in range (int(input())):
n=int(input())
an=list(map(int,input().split()))
c=set()
flag=0
el=0
for i in an:
if i not in c:
c.a

博客介绍了第19届上海大学程序设计联赛春季赛E题,讨论如何处理小朋友拥有的一堆卡片,每张卡片有不同的满意度。题目要求处理重复卡片,当重复数量为奇数时,为了最小化损失,需要决定哪张卡片给妈妈。解决方案采用贪心策略,判断重复数量,考虑特殊情况并提供相关代码。然而,在实现过程中,博主发现对于有序元组的概念有所误解。
最低0.47元/天 解锁文章
254





