首页 > 试题广场 >

挖掘机技术哪家强(20)

[编程题]挖掘机技术哪家强(20)
  • 热度指数:19829 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。

输入描述:
输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号、及其比赛成绩(百分制),中间以空格分隔。


输出描述:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
示例1

输入

6<br/>3 65<br/>2 80<br/>1 100<br/>2 70<br/>3 40<br/>3 0

输出

2 150
hash数组
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        int N=in.nextInt();
        int[] hash=new int[100001];
        int max=0;

        for(int i=0; i<N; ++i){
            int index=in.nextInt(); //获取序号
            int number=in.nextInt();//获取分数

            hash[index]+=number;

            //记录最大下标,以减少遍历次数
            if(hash[max] < hash[index]){
                max=index;
            }
        }

        System.out.print(max+" "+hash[max]);
    }
}


发表于 2023-03-20 16:34:55 回复(0)
把输入的编号和成绩以K V 对的形式放入HashMap中,若K已经存在就把成绩累加到K对于的V上,否则就放入一个K V对,同时比较除最大成绩
import java.util.*;

public class Main{
    public static void main(String [] args){
        Scanner sc = new Scanner(System.in);
        int a = 0,b = 0, id = 0, max = 0;
        int n = sc.nextInt();
        HashMap<Integer,Integer> map = new HashMap<Integer, Integer>();
        for(int i = 0; i < n ; i++){
            a = sc.nextInt();
            b = sc. nextInt();
            if(map.containsKey(a))
               b = map.get(a) + b;
        	map.put(a, b);
        	if(max < b){
        		max = b;
        		id = a;
        	}
        }
        System.out.println(id + " " +max);
    }
}


发表于 2019-08-19 18:16:38 回复(0)
import java.util.Scanner;
public class Main{
 public static void main(String[] args) {
  Scanner in=new Scanner(System.in);
  int n=in.nextInt();
  int []num=new int[100001];
  int max=0;
  int k=0;
  int a=0;
  for(int i=0;i<n;i++) {
   a=in.nextInt();
   num[a]+=in.nextInt();
  }
  for(int i=1;i<100001;i++) {
   if(num[i]>max) {
    max=num[i];
    k=i;
   }
  }
  if(max>0)
             System.out.println(k+" "+max);
  else {
   System.out.println(a+" 0");
  }
 }
}

发表于 2019-03-20 21:48:52 回复(0)
import java.util.Scanner;
import java.util.TreeMap;
import java.util.Map.Entry;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            Map<Integer,Integer> map = new TreeMap<>();
            int n = sc.nextInt();
            for(int i =0;i<n;i++){
                int key = sc.nextInt();
                int value = sc.nextInt();
                if(map.containsKey(key)){
                    map.put(key,map.get(key)+value);
                }else{
                    map.put(key,value);
                }
            }
            List<Map.Entry<Integer,Integer>> lt = new ArrayList(map.entrySet());
            Collections.sort(lt,new Comparator<Map.Entry<Integer,Integer>>(){
                public int compare(Entry<Integer,Integer> cp1,Entry<Integer,Integer> cp2){
                    if(cp1.getValue() > cp2.getValue()){
                        return -1;
                    }
                    return 1;
                }
            });
            System.out.println(lt.get(0).getKey()+" "+lt.get(0).getValue());
        }
    }
}

发表于 2018-09-30 16:58:36 回复(0)