专栏文章

题解:P1097 [NOIP2007 提高组] 统计数字

P1097题解参与者 22已保存评论 22

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
22 条
当前快照
1 份
快照标识符
@miqhl7bh
此快照首次捕获于
2025/12/04 04:55
3 个月前
此快照最后确认于
2025/12/04 04:55
3 个月前
查看原文

思路:

把数字从大到小排序。如果 ai=ai+1a_i = a_{i+1},也就是这个数和后面的那个数相同,那么计数器加一;否则输出这个数然后输出这个数的个数。

代码:

CPP
#include<bits/stdc++.h>
using namespace std;
int a[200005];
int n;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+1+n);
    s=1;
	for(int i=1;i<=n;i++){
        if(a[i]==a[i+1]) s++;   //计数器加一
        else{
            cout<<a[i]<<" "<<s<<endl;  //输出答案
            s=1;   //重置
        }
	}
	return 0;
}

评论

22 条评论,欢迎与作者交流。

正在加载评论...