这题是真不难,就是刚开始被自己的智商坑了一次。。。
用数组的常规做法实在是有点不切实际。。数据大了。
所以用数组读入,再用循坏处理。
附上代码:
1 #include<set> 2 3 #include<map> 4 #include<list> 5 #include<queue> 6 #include<stack> 7 #include<string> 8 #include<cmath> 9 #include<ctime> 10 #include<vector> 11 #include<bitset> 12 #include<memory> 13 #include<utility> 14 #include<cstdio> 15 #include<sstream> 16 #include<iostream> 17 #include<cstdlib> 18 #include<cstring> 19 #include<algorithm>//头文件。。。 20 using namespace std; 21 int n,ans=1;//n是共有多少个数,ans记录每个数出现的次数 22 int a[200005]; 23 int main(){ 24 cin>>n; 25 for(int i=1;i<=n;i++){ 26 cin>>a[i];//读入不解释 27 } 28 sort(a+1,a+1+n);//排序函数,头文件#include<algorithm>,默认从小到大排序 29 for(int i=2;i<=n;i++){ 30 if(a[i]==a[i-1])ans++; 31 else{ 32 cout<<a[i-1]<<' '<<ans<<endl; 33 ans=1;//初始化ans 34 } 35 } 36 cout<<a[n]<<' '<<ans<<endl;//没输出完 37 return 0; 38 }
emmmm,实际上这是我大概两年前做的题目,在博客移植的时候又回题面看了一眼,发现数据好像增强了,但是,这个程序还是满分的
新人开博,支持一下吧~~