zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practise (中文)-1032. 挖掘机技术哪家强(20)

    PAT (Basic Level) Practise (中文)-1032. 挖掘机技术哪家强(20) http://www.patest.cn/contests/pat-b-practise/1032

    为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。

    输入格式:

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

    输出格式:

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

    输入样例:

    6
    3 65
    2 80
    1 100
    2 70
    3 40
    3 0
    

    输出样例:

    2 150


    题目信息:
    1. 输入的第一行给出一个数值,范围(0,100000],代表参赛人数。
    2. 参赛者代表学校,学校使用数字编号,且从1开始连续编号。所以学校编号范围为[1,100000]。所以一个100001个int的hash表即可记录所有参赛学校的分数。
     1 #include<stdio.h>
     2 #include<string.h> 
     3 int main()
     4 { 
     5     int n=0;
     6     scanf("%d",&n);
     7     
     8     int student=0,chengji=0,max=0,maxshool=0,shool[100000]={0};
     9     for(int i=0;i<n;i++)
    10     {
    11         scanf("%d%d",&student,&chengji);
    12         shool[student] += chengji;
    13         if(shool[student]>max)
    14         {
    15               max=shool[student];
    16               maxshool=student;      
    17         }
    18         
    19     }
    20     printf("%d %d",maxshool,max);
    21     return 0;
    22 }
    23  
    
    

    思考:为什么可以使用hash?为什么选择使用hash?hash节省了哪些工作?

    扩展:如果学校不使用数字编号,而是使用名称(字符串),则如何统计出分数最高者?

    提示:如果100000条记录+学校使用名称,则在统计某一个学校的总得分时,如果选择的方法较暴力,则可能超时哦。

    提示的提示:可以先按照名称排序,比如quick sort。

     
  • 相关阅读:
    怎样设置HTML上传控件,上传文件的大小
    在winform里怎么调用WebBrowser控件里的脚本
    可输入的DropDownList控件
    javascript + DIV +CSS 实现可拖动消息窗体
    又是一周的开始
    document.execCommand() 解析
    怎样将DataGrid的列值统计并显示在页脚
    如何添加在线QQ咨询?
    徐普~~~~个性语言堪称经典~~~~
    软键盘的实现
  • 原文地址:https://www.cnblogs.com/asinlzm/p/4444745.html
Copyright © 2011-2022 走看看