您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 1浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

复试分数线该怎么划定呢(洛谷P1068题题解,Java语言描述)

星拱北辰 发布时间:2020-01-27 13:00:30 ,浏览量:1

题目要求

P1068题目链接

在这里插入图片描述 在这里插入图片描述

分析

本题类似于此题,可以包装成一个类,然后利用自己定义的排序规则基于TreeSet去排序然后输出。

在实现的时候注意两个细节:

  1. *1.5以后要向下取整,这个是必须做的。
  2. 要保证压线的时候同分的人全部上岸。

这些并不难,只是稍稍麻烦一点点就可以啦!

AC代码(Java语言描述)
import java.util.*;

public class Main {

    private static class Person {
        Integer id;
        Integer grade;
        public Person(int id, int grade) {
            this.id = id;
            this.grade = grade;
        }
    }

    public static void main(String[] args) {
        Set set = new TreeSet(new Comparator() {
            @Override
            public int compare(Person person1, Person person2) {
                int grade_compare = -person1.grade.compareTo(person2.grade);
                if (grade_compare != 0) {
                    return grade_compare;
                }
                return person1.id.compareTo(person2.id);
            }
        });
        Scanner scanner = new Scanner(System.in);
        int all_num = scanner.nextInt(), aim_num = scanner.nextInt();
        scanner.nextLine();
        aim_num = (int)Math.floor(aim_num*1.5);
        for (int i = 0; i = aim_num && low != person.grade) {
                break;
            }
            counter++;
            list.add(person.id + " " + person.grade);
            if (counter == aim_num) {
                low = person.grade;
            }
        }
        System.out.println(low + " " + counter);
        for (String s : list) {
            System.out.println(s);
        }
        scanner.close();
    }

}
关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0418s