NOIP2007 count 统计数字

问题描述

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

输入

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

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

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

输出

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

输入输出样例

count.in

8

2

4

2

4

5

100

2

100

count.out

2  3

4  2

5  1

100  2

限制

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

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

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

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const unsigned long long MAXN=200000+10;
bool comp(int a,int b)
{
     return a<b;
}
int sum[MAXN],n,Count=1;
int main()
{
    freopen("count.in","r",stdin);
    freopen("count.ans","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>sum[i];
    sort(sum+1,sum+n+1,comp);
    for(int i=2;i<=n;i++)
    {
        if(sum[i]==sum[i-1])
            Count++;
        else
        {
            cout<<sum[i-1]<<" "<<Count<<endl;
            Count=1;
        }
    }
    cout<<sum[n]<<" "<<Count<<endl;
    return 0;
}
时间: 2024-10-13 09:45:43

NOIP2007 count 统计数字的相关文章

统计数字noip2007

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

统计数字在排序数组中出现的次数

统计一个数字在排序数组中出现的次数: 可定义一个用于统计数字个数的变量count,然后从前往后遍历数组,看是否与所求数字相等,如果相等,则count++: 下面贴出代码: public class Solution {     public int GetNumberOfK(int [] array , int k) {         int count = 0;        for(int i=0;i<array.length;i++){            if(array[i]==k

腾讯面试题(统计数字出现的次数问题)

时间:2014.04.28 地点:基地二楼 日志:知道自己没有尝试着去试图改变,晓得错了~~ ---------------------------------------------------------------- 一.题目: 给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5,6,7,8,9] 举一个例子, 数值:0,1,2,3,4,5,6,7,8,9 分配:6,2,1,0,

NHibernate COUNT(*) 统计问题

NHibernate这个框架用了有一年多了,相对有很大的优势,可以省去很多写Sql的时间. 但是如果你想用它做统计,那么有点抱歉,只能手动写写了.它内置的东西很难符合你的需求. 我遇到的问题是这样的.我需要统计一个表中根据一个字段分组统计这个每个组的数量.这个Sql很简单 表名要用对象名替换,字段也要用对应的属性描述,这个东西折腾了两个小时.以前没用过HQL.头一次. 如果你是一个高手不要见怪.我对这个没有特别深的见解,纯属个人观点.如果看了对你有帮助请帮忙推荐. 勿喷勿怪.大牛略过吧.这是一个

统计数字

原题链接:https://www.luogu.org/problem/show?pid=1097 纪念开学第一天,随手A掉一道大水题纪念一下. 题意非常明显,让我们排序并且统计数字,但数据量较大. 一开始想到最暴力的桶排序,但发现桶排序开不了那么大的数组,A不掉. 遂STL快排解决之.问题就在如何统计重复数字上. 受到夏令营day1t1启发,快排后统计数字,每次和前边的进行比较,如果相等则当前数字重复,开一个vis数组打上标记,开一个b数组外带一个附带指针t,用来记录重复数字重复出现了几次.如果

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%的

1164 统计数字

1164 统计数字 2007年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description [问题描述]某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109).已知不相同的数不超过10000 个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果. 输入描述 Input Description 第1行是整数n,表示自然数的个数.第2~n+1 行每行一个自

mysql中使用count()统计的特殊之处

如果你的需要是统计总行数时,为什么要使用count(*),而避免使用指定具体的列名?count()函数里面的参数是列名的的时候,那么会计算有值项的次数.也就是,该列没有值的项并不会进入计算范围.这样的话,你想统计的行数并不准确.更重要的是,还会增加消耗.因为,需要判断扫描所有行才知道值是否有值.如果使用count(*),它会计算总行数.不管你是否有值都会列入计算范围.另外一点:mysqlisam引擎很容易获得总行数的统计.查询速度变得更快归纳:实际编程中统计总行数是经常用到的.此时使用count

[CareerCup] 18.4 Count Number of Two 统计数字2的个数

18.4 Write a method to count the number of 2s between 0 and n. 这道题给了我们一个整数n,让我们求[0,n]区间内所有2出现的个数,比如如果n=20,那么满足题意的是2, 12, 20,那么返回3即可.LeetCode上有一道很类似的题Factorial Trailing Zeroes,但是那道题求5的个数还包括了因子中的5,比如10里面也有5,这是两题的不同之处.那么首先这题可以用brute force来解,我们对区间内的每一个数字