【题解】统计自然数
【题目描述】
【输入描述】
输入包含n+1行: 第1行是整数n,表示自然数的个数。
第2~n+1行每行一个自然数。
【输出描述】
【样例输入】
8 2 4 2 4 5 100 2 100
【样例输出】
2 3 4 2 5 1 100 2
【来源】NOIP2007年提高组
【题目分析】
桶排很难拿满分,数据太大了
可以先用sort排完之后再处理数据
【参考答案1】
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[200010],n,t=1;
int main() {
scanf("%d",&n);
for(int i=1; i<=n; i++) scanf("%d",&a[i]);
sort(a+1,a+n+1);
for(int i=1; i<=n+1; i++) {
if(a[i]==a[i-1]) ++t;
else if(i!=1) {
printf("%d %d\n",a[i-1],t);
t=1;
}
}
return 0;
}【参考答案2】
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int n,i,k,cnt=0,j;
int main()
{
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
for(i=0;i<n;i++)
{
if(i==0)
{
j=a[i];
cnt=1;
continue;
}
if(j!=a[i])
{
cout<<j<<" "<<cnt<<endl;
j=a[i];
cnt=1;
}
else if(j==a[i])cnt++;
}
cout<<j<<" "<<cnt<<endl;
return 0;
}扫描二维码推送至手机访问。
版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。


