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。

     
  • 相关阅读:
    BPM平台在企业业务系统中使用的价值讨论
    零售餐饮行业的信息化建设
    LINQ 与Oracle应用 :转帖
    k2之于.NET流程应用开发者
    利用xslt导出复杂样式的excel,支持多个worksheet
    利用偏移量快速定位数据内容
    简单天气项目中观察者模式解析
    作业3:基于墨刀的:视频剪辑软件原型设计
    必做作业2:视频剪辑软件调研
    .Net Core项目依赖项问题
  • 原文地址:https://www.cnblogs.com/asinlzm/p/4444745.html
Copyright © 2011-2022 走看看