zoukankan      html  css  js  c++  java
  • 2007年分区联赛提高组之一 统计数字

    Description

      某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

    Input

      输入包含n+1行;
      第一行是整数n,表示自然数的个数;
      第2~n+1每行一个自然数。

    Output

      输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

    Sample Input

    8
    2
    4
    2
    4
    5
    100
    2
    100

    Sample Output

    2 3
    4 2
    5 1
    100 2

    Hint

    40%的数据满足:1<=n<=1000

    80%的数据满足:1<=n<=50000

    100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*109)

    分析
    因为出现的数字会很大,如果直接记录进数组,数组会很大,所以用hash来记录出现的数字和次数。
    记得要排序,因为hash的尿性,记录进去的数字不会是排好序的
    最后再for一遍记录次数的数组,判断不为零就输出

    程序:

    var
     hash,count,list:array[0..200001]of longint;
     key,i,j,n,s,t,max,wz:longint;
    procedure qsort(l,r:longint);
    var
     i,j,mid,t:longint;
    begin
     i:=l;
     j:=r;
     mid:=hash[(i+j) div 2];
     repeat
      while hash[i]<mid do inc(i);
      while hash[j]>mid do dec(j);
      if i<=j then
        begin
          t:=hash[i]; hash[i]:=hash[j]; hash[j]:=t;
          t:=count[i]; count[i]:=count[j]; count[j]:=t;
          inc(i);
          dec(j);
        end;
     until i>j;
     if i<r then qsort(i,r);
     if l<j then qsort(l,j);
    end;
    
    function locate(n:longint):longint;
    var
     wz:longint;
    begin
     wz:=n mod key;
     while (hash[wz]<>0)and(hash[wz mod key]<>n) do inc(wz);
     exit(wz);
    end;
    
    begin
     read(n);
     key:=200001;
     for i:=1 to n do
       begin
         read(s);
         wz:=locate(s);
         if wz>max then max:=wz;
         hash[wz]:=s;
         inc(count[wz]);
       end;
     qsort(1,max);
     for i:=1 to max do
      if count[i]<>0 then
        begin
          write(hash[i],' ',count[i]);
          writeln;
        end;
    end.
    
  • 相关阅读:
    安卓系统浏览器中select下拉按钮无法弹出选择面板奇怪问题解决
    Webkit浏览器点击控件时出现的边框消除
    UML序列图总结
    UML序列图总结
    UML类图几种关系的总结
    UML类图几种关系的总结
    UML用例图总结
    UML用例图总结
    类与类之间的关系
    java核心技术----Object类
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500024.html
Copyright © 2011-2022 走看看