【每日蓝桥】62、一九年省赛Java组真题“组队”

举报
灰小猿 发表于 2021/05/30 23:33:11 2021/05/30
【摘要】 你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术! 标题:组队 作为篮球队教练,你需要从以下名单中选出1号位至5号位各- -名球员,组成球队的首发阵容。每位球员担任1号位至5号位时的评分如下表所示。请你...

你好呀,我是灰小猿,一个超会写bug的程序猿!

欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!

标题:组队

作为篮球队教练,你需要从以下名单中选出1号位至5号位各- -名球员,组成球队的首发阵容。每位球员担任1号位至5号位时的评分如下表所示。请你计算首发阵容1号位至5号位的评分之和最大可能是多少?

(如果你把以上文字复制到文本文件中,请务必检查复制的内容是否与文

档中的一致。)

解题思路

这道题属于试卷的第一道题,所以在计算思路上比较简单,一共是5个位置,每一个位置上的球员应该是互不相同的,同时既然是让最后的总评分达到最大,那么最简单的方法就是在20个球员中,我们先选取每一个位置上评分最高的球员,然后将选取出来的球员在该位置上的评分相加即可。

在这里要注意的就是,如果说某一个球员在多个位置上都是最高分的话,在之前的位置上选取了该球员之后,在其他位置上就不能选该球员了,应该选择分数第二高的球员,按照该方法,选取出来的5个位置对应的球员及其在该位置上的分数如下图(其中一种选择):

第二种思路:如果用程序来做,我们可以使用组合数,每次得到5个球员的组合,算出这个组合的最大评分之和,最后算出所有组合最大评分之和的最大值。代码如下:

答案源码:


   
  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner reader = new Scanner(System.in);
  5. int athleticGrade[][] = new int[20][5];//存储运动员成绩
  6. for (int i = 0; i < 20; i++) {
  7. reader.nextInt();//将编号数据吸收掉
  8. for (int j = 0; j < 5; j++) {
  9. athleticGrade[i][j] = reader.nextInt();
  10. }
  11. }
  12. int maxGrade = 0;//最大评分之和
  13. for (int a = 0; a < 20; a++) {
  14. for (int b = 0; b < 20; b++) {
  15. for (int c = 0; c < 20; c++) {
  16. for (int d = 0; d < 20; d++) {
  17. for (int e = 0; e < 20; e++) {
  18. //如果a,b,c,d,e互不相同
  19. if (a!=b && a!=c && a!=d && a!=e && b!=c &&
  20. b!=d && b!=e && c!=d && c!=e && d!=e) {
  21. int temp = athleticGrade[a][0]+athleticGrade[b][1]
  22. +athleticGrade[c][2]+athleticGrade[d][3]
  23. +athleticGrade[e][4];
  24. maxGrade = maxGrade > temp ? maxGrade : temp;
  25. }
  26. }
  27. }
  28. }
  29. }
  30. }
  31. System.out.println(maxGrade);
  32. }
  33. }

 

输出样例:

其中有不足或者改进的地方,还希望小伙伴留言提出,一起学习!

感兴趣的小伙伴可以关注专栏!

灰小猿陪你一起进步!

文章来源: blog.csdn.net,作者:灰小猿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_44985880/article/details/117401391

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。