洛谷P1059明明的随机数

    xiaoxiao2025-01-31  51

    有去重效果的桶,这里是取巧的特殊解法。如果是需要这些数据进行其他操作的话,还需要加一个循环将数字(即下标)拷出来。做法也很简单,我也写在里面了(不过还没有机会进行测试)。

    #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; }
    最新回复(0)