zoukankan      html  css  js  c++  java
  • 7909:统计数字

    7909:统计数字

    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述

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

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

    40%的数据满足:1<=n<=1000;
    80%的数据满足:1<=n<=50000;
    100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*10^9)。
    输出
    包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
    样例输入
    8
    2
    4
    2
    4
    5
    100
    2
    100
    
    样例输出
    2 3
    4 2
    5 1
    100 2
    
    来源
    NOIP2007复赛 提高组 第一题
    分析:
    一开始以为是一个二分兼快拍的难题。。
    当我一脸懵逼的看着满是超时的结果时。。
    我才恍然发现
    这TM就是一个简单的线性数据处理
    !!!!!!!!!!!!!!
    啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 using namespace std;
     5 int a[10000001];
     6 struct node
     7 {
     8     int daxiao;
     9     int cishu;
    10 }b[10000001];
    11 int now=1;
    12 int main()
    13 {
    14     int n;
    15     cin>>n;
    16     for(int i=1;i<=n;i++)
    17     {
    18         cin>>a[i];
    19     }
    20     sort(a+1,a+1+n);
    21     for(int i=1;i<=n;i++)
    22     {
    23         if(a[i]==a[i+1])
    24         {
    25             b[now].cishu++;
    26             continue;
    27         }
    28         else
    29         {
    30             b[now].daxiao=a[i];
    31             b[now].cishu++;
    32             now++;
    33         }
    34     }
    35     for(int i=1;i<=now-1;i++)
    36     {
    37         cout<<b[i].daxiao<<" "<<b[i].cishu<<endl;
    38     }
    39     return 0;
    40 }
     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstdio>
     4 using namespace std;
     5 struct node
     6 {
     7     int daxiao;
     8     int cishu;
     9 }a[1000001];
    10 int now=1;
    11 int rf(int l,int r,int x)
    12 {
    13     int mid=(l+r)/2;
    14     if(a[mid].daxiao==x)
    15     {
    16         a[mid].cishu++;
    17         return 1;
    18     }
    19     else if(l>=r)
    20     return 0;
    21     else
    22     {
    23         if(x>a[mid].daxiao)
    24         return rf(l,mid,x);
    25         else 
    26         return rf(mid+1,r,x);
    27     }
    28 }
    29 int comp(const node & a,const node & b)
    30 {
    31     if(a.daxiao>b.daxiao)
    32     return 1;
    33     else 
    34     return 0;
    35 }
    36 int main()
    37 {
    38     int n;
    39     cin>>n;
    40     for(int i=1;i<=n;i++)
    41     {
    42         int b;
    43         scanf("%d",&b);
    44         if(rf(0,i,b)==1)
    45         continue;
    46         else
    47         {
    48             a[now].daxiao=b;
    49             a[now].cishu++;
    50             now++;
    51         }
    52         sort(a+1,a+i+1,comp);
    53     }
    54     
    55     for(int i=n;i>=1;i--)
    56     {
    57         if(a[i].cishu!=0)
    58         cout<<a[i].daxiao<<" "<<a[i].cishu<<endl;
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    DNS服务器出错造成“不知道这样的主机”
    downadup.B蠕虫病毒处理手记
    今天新接触到一个名词——GSV
    客户端获取SQL服务端的MAC
    关于SQL事务的测试
    ftp://ftp.microsoft.com
    AJAX.DLL的使用
    "界面规则层与业务规则层"让我想开了
    客户端cookie也会传到服务端的Request.Params?
    Ext.Fx
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6624126.html
Copyright © 2011-2022 走看看