【题解】统计自然数
【题目描述】
【输入描述】
输入包含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; }
扫描二维码推送至手机访问。
版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。