解题思路:
这道题的思路并不难,就是一个超时的问题,暂时还不知道该怎么处理。
在分配考场的时候,假如说选中了m个人去考试,分为k个考场,那么我们将这m个人的成绩进行排序,选取成绩最好的(k-1)个人,每人单独分配到一个考场(也就是说一个考场只有一个人),将剩下的m-(k-1)个人分配到最后一个考场。计算每个考场的平均分,然后将各个考场的平均分求和除以k就能得到结果了。
注意事项:
参考代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | n = int ( input ().strip()) stu = [ 0 ] stu = stu + [ int (i) for i in input ().strip().split()] time = int ( input ().strip()) for t in range (time): temp = [ int (it) for it in input ().strip().split()] if temp[ 0 ] = = 2 : l = temp[ 1 ] r = temp[ 2 ] k = temp[ 3 ] cho = stu[l:r + 1 ] cho.sort() class1 = (r - l + 1 ) - (k - 1 ) ave = sum (cho[:class1]) / class1 ave = ave + sum (cho[class1:]) ave_ave = ave / k print ( '%.3f' % ave_ave) elif temp[ 0 ] = = 1 : stu[temp[ 1 ]] = temp[ 2 ] |
0 分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复