洛谷-统计数字-NOIP2007提高组复赛

题目描述 Description

某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
 输入输出格式 Input/output
输入格式:
输入文件count.in包含n+1行;
第一行是整数n,表示自然数的个数;
第2~n+1每行一个自然数。
输出格式:
输出文件count.out包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
 输入输出样例 Sample input/output
样例测试点#1

输入样例:

8
2
4
2
4
5
100
2
100
输出样例:

2 3
4 2
5 1
100 2
说明 description

40%的数据满足:1<=n<=1000
80%的数据满足:1<=n<=50000
100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*109)
NOIP 2007 提高第一题

思路:首先要对输入的数据进行升序排序,然后从头开始找数字出现的个数,找过的记得标记(我这里标记为-100),然后计数器++即可

代码如下:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int fun(const void *a,const void *b)//升序排序 
 4 {
 5     return *(int*)a-*(int*)b;
 6 }  
 7 int main()
 8 {
 9     int n,i,lala,j;
10     int ans=0;
11     int a[200000];
12     scanf("%d",&n);
13     for(i=0;i<n;i++)
14     {
15         scanf("%d",&a[i]);
16     }
17     qsort(a,n,sizeof(int),fun);
18     for(i=0;i<n;i++)
19     {
20         if(a[i]!=-100)
21         {
22             lala=a[i];
23             for(j=0;j<n;j++)
24             {
25                 if(a[j]==lala) 
26                 {
27                     ans++;
28                     a[j]=-100;
29                 }            
30             }
31             printf("%d %d",lala,ans);
32             printf("\n");
33             ans=0;
34         }        
35     }
36     return 0;
37 }

 

转载于:https://www.cnblogs.com/geek-007/p/5170675.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NOIP(全国青少年信息学奥林匹克竞赛)是中国举办的一项顶尖竞赛,旨在选拔和培养青少年信息学人才。CSP(计算机科学与编程竞赛)是NOIP的初赛,包括提高和普及两个不同难度的竞赛。 从1995年到2021年,CSP提高复赛试题持续不断地推陈出新。试题的难度和内容与俱进,反映了信息科技和计算机学科的发展趋势。 这些试题涵盖了计算机科学与编程的各个领域,如数据结构、算法设计与分析、图论、动态规划等。这些题目不仅要求考生熟悉编程语言,还需要考生具备分析问题、设计算法、优化程序的能力。因此,参加CSP的考生需要有扎实的计算机基础知识和编程技巧。 CSP试题的设计目标是培养学生的创新思维、动手能力和问题解决能力。试题往往是实际问题的抽象化,考生需要将问题拆解、建模,并设计出适用的算法和程序来解决。这种综合应用的能力培养能够提高学生的实践能力和创新能力,为他们今后的学习和工作打下坚实的基础。 此外,CSP试题还注重培养学生的团队合作精神和竞技意识。复赛试题通常要求考生在限定间内完成,这要求考生在有限的间内高效地协作和解决问题。 总之,NOIP CSP提高复赛试题的不断更新和提高,以及其注重培养学生的综合能力,使得参加这项竞赛的学生能够更好地理解和应用计算机科学知识,为他们日后的学习和发展打下良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值