[NOIP2006]明明的随机数

简介: [NOIP2006]明明的随机数

[NOIP2006]明明的随机数 今天我们还是来点简单题,中等题和难题我们过两天再来分享哈,好了,我们一起来看看题意吧:

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N ≤ 100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入描述

输入有2行,第1行为1个正整数,表示所生成的随机数的个数:N
第2行有N个用空格隔开的正整数,为所产生的随机数。

输出描述

输出2行,第1行为1个正整数M,表示不相同的随机数的个数。
第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

示例1

输入

10

20 40 32 67 40 20 89 300 400 15

输出

8

15 20 32 40 67 89 300 400

题目链接: [NOIP2006]明明的随机数

思路:

这道题我们直接用数组占位的思想(差不多是桶排序的思想)

我们来看看成功AC的代码吧:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[100010],b[100010];
int ct;//表示有多少个不重复的数
int main(){
    cin.tie(0);cout.tie(0);
    ios::sync_with_stdio(false);
    cin>>n;
    for(int i=1;i<=n;i++) {
        int x; cin>>x; a[x]++;
        if(a[x]==1) ct++;
    }
    cout<<ct<<"\n";
    for(int i=0;i<=100010;i++) if(a[i]) cout<<i<<" ";
    return 0;
}


相关文章
|
机器学习/深度学习 数据处理
|
6月前
|
C++
【洛谷 P1059】[NOIP2006 普及组] 明明的随机数 题解(集合)
**NOIP2006普及组题目**,明明需生成不重复的1-1000间随机整数,输入含两行:第一行是整数N(≤100),第二行是N个随机数。输出两行,第一行是唯一数的个数M,第二行是排序后的唯一数。示例:输入10个数含重复,输出8个不同数排序后结果。解题方法:利用C++的`set`进行去重和排序。
71 0
|
数据安全/隐私保护 Python
【每周一坑】信息加密​ +【解答】正整数分解质因数
如果之前已经有质因数,最后剩下的 i 就是最后一个质因数;如果没有,说明原数就是质数
|
算法 搜索推荐 测试技术
华为机试HJ3:明明的随机数
华为机试HJ3:明明的随机数
|
Python
明明的随机数
明明的随机数
84 0
【C】快速求最大公约数的三种办法
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。 为大家带来找最大公约数的两种办法,1.暴力求解法,2.辗转相除法,3,更相减损法
|
机器学习/深度学习 算法
蓝桥杯之素数及相关判断方法(看这一篇就够了)
蓝桥杯之素数及相关判断方法(看这一篇就够了)
171 0
华为机试每日一练--第十二题: 查找组成一个偶数最接近的两个素数
华为机试每日一练--第十二题: 查找组成一个偶数最接近的两个素数
华为机试每日一练--第十二题: 查找组成一个偶数最接近的两个素数
|
Java
质数拆分+明明的随机数(蓝桥杯JAVA解法)
质数拆分+明明的随机数(蓝桥杯JAVA解法)
99 0