• luogu1097统计数字[noip2007提高组Day1T1]


    题目描述

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

    输入输出格式

    输入格式:

    输入文件count.in包含n+1行;

    第一行是整数n,表示自然数的个数;

    第2~n+1每行一个自然数。

    输出格式:

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

    输入输出样例

    输入样例#1:
    8
    2
    4
    2
    4
    5
    100
    2
    100
    
    
    输出样例#1:
    2 3
    4 2
    5 1
    100 2
    

    说明

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

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

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

    NOIP 2007 提高第一题

    通常写法:

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int n,a[200001];
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    		scanf("%d",&a[i]);
    	sort(a+1,a+1+n);
    	int tmp=1;
    	for(int i=2;i<=n+1;i++){
    		if(a[i-1]^a[i]){
    			printf("%d %d
    ",a[i-1],tmp);
    			tmp=1;
    		}
    		else tmp++;
    	}
    	return 0;
    }

    STL写法:

    #include<map>
    #include<cstdio>
    #include<iterator>
    using namespace std;
    typedef map<int,int> M;
    int n;
    M c;
    int main()
    {
    	scanf("%d",&n);
    	for(;n;--n){
    		int x;
    		scanf("%d",&x);
    		++c[x];
    	}
    	for(M::iterator i=c.begin();i!=c.end();++i)
    		printf("%d %d
    ",i->first,i->second);
    	return 0;
    }



  • 相关阅读:
    当我说要做大数据工程师时他们都笑我,直到三个月后……转
    体系化认识RPC--转
    jsoup HTML parser hello world examples--转
    数组指针和指针数组的区别
    什么是计算机科学
    HTML图片热区map area的用法
    九宫八卦--易学基础
    初探Net框架下的XML编程技术
    百度网盘学习资料
    遍历json 对象的属性并且动态添加属性
  • 原文地址:https://www.cnblogs.com/keshuqi/p/5957694.html
Copyright © 2020-2023  润新知