zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯 算法提高 特等奖学金(暴力)

    试题 算法提高 特等奖学金

    问题描述
      土豪大学每年都会给学生颁发巨额的特等奖学金,当然,获奖的前提是要足够优秀。这所大学有n名学生,他们中的每个人都会在m门必修课的每门课上获得一个百分制的整数成绩(0-100),到了期末教务长会获得所有学生在所有必修课上的成绩报告,他会从中挑选出最优秀的k位学生,并给他们颁发奖学金。
      教务长认为,某个学生只要有一门课不及格(分数<85),他就丧失了获得奖学金的资格。教务长会给所有科目按照重要性排序,在所有拥有获得奖学金资格的学生中,教务长更喜欢在更重要的科目中取得高分的学生,并依此将学生排序(即对于某两名学生,在最重要的科目中取得更高分的学生排在前面;如果两人在最重要的科目中取得相同的分数,则比较次重要的科目;若再相同则比较第三重要的科目……一直下去)。
      以前土豪大学的学生数量并不多,教务长就用纸笔计算谁将获得奖学金;今年大学扩招了,教务长意识到用纸笔计算太复杂了,你能帮他解决这个问题吗?说不定教务长高兴了就给你也发一份奖学金(⊙o⊙)哦!(注意:获奖学生数量可能小于k)
    输入格式
      输入数据第一行为三个整数n、m、k,用空格隔开;第二行至第(n+1)行是学号分别为1、2……n的同学的m门课的成绩(m门课已按重要性排序),用空格隔开(输入保证每两人的分数不完全相同)。
    输出格式
      输出一行为获奖同学的学号,按排名从前到后排序,用空格隔开。
    样例输入
    10 2 7
    99 87
    96 79
    93 99
    88 88
    90 87
    90 86
    90 88
    88 90
    91 100
    100 85
    样例输出
    10 1 3 9 7 5 6
    数据规模和约定
      0<n≤1000,0<m≤100,0<k≤n

     
    
    import java.util.*;
    
    public class Main {
        static class Node implements Comparable<Node> {
            int id;
            int[] Score;
    
            @Override
            public int compareTo(Node node) {
                for (int i=0;i<Score.length;i++){
                    if (this.Score[i] != node.Score[i]) {
                        return this.Score[i] - node.Score[i];
                    }
                }
                return 0;
            }
        }
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int m = sc.nextInt();
            int k = sc.nextInt();
            int temp=0;
            Node node;
            int[] score;
    //        Node[] nodes = new Node[n];
            ArrayList<Node> nodes = new ArrayList<>();
           A: for (int i=0; i<n; i++) {
                boolean flag = false;
                node=new Node();
               node.id=i+1;
               score=new int[m];
                for (int j=0; j<m; j++) {
                    temp=sc.nextInt();
                    if (temp<85) flag = true;
                    score[j]=temp;
                }
                if(flag) continue A;
               node.Score=score;
                nodes.add(node);
            }
            sc.close();
            Collections.sort(nodes);
            for (int i=nodes.size()-1; i>=0 && i>=nodes.size()-k; i--){
                System.out.print(nodes.get(i).id+" ");
            }
        }
    }
    
    
  • 相关阅读:
    cinder支持nfs快照
    浏览器输入URL到返回页面的全过程
    按需制作最小的本地yum源
    创建可执行bin安装文件
    RPCVersionCapError: Requested message version, 4.17 is incompatible. It needs to be equal in major version and less than or equal in minor version as the specified version cap 4.11.
    惠普IPMI登陆不上
    Linux进程状态——top,ps中看到进程状态D,S,Z的含义
    openstack-neutron基本的网络类型以及分析
    openstack octavia的实现与分析(二)原理,架构与基本流程
    flask上下文流程图
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074613.html
Copyright © 2011-2022 走看看