洛谷P1059明明的随机数
程序员文章站
2022-05-13 22:47:35
...
有去重效果的桶,这里是取巧的特殊解法。如果是需要这些数据进行其他操作的话,还需要加一个循环将数字(即下标)拷出来。做法也很简单,我也写在里面了(不过还没有机会进行测试)。
#include<iostream>
using namespace std;
bool ss[1005]={0};//由于待排序数字的范围在1-1000内,1005够了
int main(){
int n; int A;
cin>>n;
for(int i=0;i<n;i++)//输入
{
cin>>A;
ss[A]=1;//设置标记
}
int ans=0;//计数器,也是最后的答案
for(int i=0;i<1005;i++)//注意要将整个数组完全遍历一遍才可以(其实在1-1000内就行)
if(ss[i]) ans++;//求共出现过几个数字
/* int f1=0;int s1[1005]={0};
for(int i=0;i<n;++i){
if(ss[i])s1[f1++]=i;
}
*/
cout<<ans<<endl;
for(int i=0;i<1005;i++)while(1);
if(ss[i])cout<<i<<" ";//输出符合条件的数字
return 0;
}
上一篇: P1059 明明的随机数
下一篇: 【洛谷 P1059】明明的随机数