解题思路:直接排序求和

注意事项:

参考代码:

n = int(input())
dp = list([] for _ in range(10))    # 定义 保存对应数字及代价
le = list(0 for _ in range(10))     # 定义 保存每个数字输入的次数
for i in range(n):
   x, y = map(int, input().split())
   dp[x].append(y)      # 保存对应数字及代价
   le[x] = le[x] + 1     # 对应数字输入次数 +1
ans = 0
for j in range(10):
   if le[j] > n//10:
       dp[j].sort(reverse=True)
       del dp[j][:n//10]
       ans += sum(dp[j])    # 求和
print(ans)


点赞(0)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 6 条评论

江渺烟雨寒 9月前 回复TA
666太妙了!
gu 11月前 回复TA
我也一样
墨九 1年前 回复TA
@咚咚 我也是这样,第一次跑91,然后分数越跑越低不懂为啥
咚咚 1年前 回复TA
@咚咚 不对,就是会有几个测试点的时间超限
咚咚 1年前 回复TA
@咚咚 好吧,是我代码有问题
咚咚 1年前 回复TA
会超时,不知道为什么