P1059 [NOIP2006 普及组] 明明的随机数题解

题目

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

输入输出格式

输入格式

输入有两行,第1行为1个正整数,表示所生成的随机数的个数N。

第2行有N个用空格隔开的正整数,为所产生的随机数。

输出格式

输出也是两行,第1行为1个正整数M,表示不相同的随机数的个数。

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

输入输出样例

输入样例

10
20 40 32 67 40 20 89 300 400 15

输出样例

8
15 20 32 40 67 89 300 400

代码

可以使用桶排序的思想,因为数据范围很小且都是正整数。

#include<iostream>
using namespace std;
int n,x,sum,bus[1002];
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>x;if(bus[x]){//如果数字重复,直接跳过去continue;}bus[x]++;sum++;}cout<<sum<<endl;for(int i=1;i<=1000;i++){if(bus[i]){cout<<i<<" ";}}return 0;
}

使用STL库中的set,就是数学上的集合——每个元素最多只出现一次,并且set中的元素已经从小到大排好序。

常用操作:

begin() 返回set容器的第一个元素的地址

end() 返回set容器的最后一个元素

clear() 删除set容器中的所有的元素

empty() 判断set容器是否为空

max_size()返回set容器可能包含的元素最大个数

size() 返回当前set容器中的元素个数

erase(it) 删除迭代器指针it处元素

insert(a) 插入某个元素

#include<iostream>
#include<set>
using namespace std;
set<int>s;
int a[105],n;
int main(){cin>>n;for(int i=0;i<n;i++){cin>>a[i];s.insert(a[i]);}cout<<s.size()<<endl;while(!s.empty()){cout<<*s.begin()<<" ";//注意此处s.erase(s.begin());//删除此处的元素}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBaties-增删查改

文章目录 一、简单的增删查改1.添加2.删除3.修改4.查询 一、简单的增删查改 1.添加 <insert id"insertUser">insert into user values (null,"cc","123445",20); </insert>2.删除 <!-- int deleteUser();--><delete …

高阶测试开发必备技能: k8s入门!

现在稍微有点规模公司都是基于docker容器化部署技巧&#xff0c;K8s现在主流&#xff0c;应用最广的容器集群管理技术。 k8s全称kubernetes&#xff08;首字母为 k、首字母与尾字母之间有 8 个字符、尾字母为 s&#xff0c;所以简称 k8s&#xff09;&#xff0c;基于Docker容器…

网络安全01--负载均衡

目录 一、环境准备 1.1三台虚拟机 二、开始搭建负载均衡&#xff1a; 2.1准备一下源 2.2正式安装 2.3Nginx安装情况 三、负载均衡--轮询&#xff08;round robin&#xff09; 3.1在 http 部分添加如下负载均衡配置&#xff1a; 3.2简单解释一下server端&#xff1a; …

JS-Window常见对象

location对象 location的数据类型是对象&#xff0c;它拆分并保存了URL地址的各个组成部分 常用属性和方法&#xff1a; 1&#xff09;href属性获取完整的URL地址&#xff0c;对其赋值时用于地址的跳转 //可以得到当前文件URL地址 console.log(location.href) //可以通过js…

GPT-SoVITS 测试

开箱直用版&#xff08;使用 AutoDL&#xff09; step1 打开地址 https://www.codewithgpu.com/i/RVC-Boss/GPT-SoVITS/GPT-SoVITS-Official 选择 AutoDL创建实例&#xff0c;选择 3080ti 机器 step2 创建好实例之后&#xff0c;进入命令行&#xff0c;输入命令 echo {}>…

防御保护--智能选路

目录 就近选路 策略选路--PBR DSCP优先级 智能选路--全局路由策略 1.基于链路带宽的负载分担 2.基于链路质量进行负载分担 3.基于链路权重进行负载分担 4.基于链路优先级的主备备份 ​编辑 DNS透明代理 就近选路 我们希望在访问不同运营商服务器时&#xff0c;通过对…

使用机器学习算法检测交易中的异常行为

交易中的异常检测意味着识别交易或相关活动中的异常或意外模式。这些模式被称为异常或异常值&#xff0c;明显偏离预期规范&#xff0c;可能表明存在不规则或欺诈行为。 异常检测在各种业务中发挥着至关重要的作用&#xff0c;尤其是那些涉及金融交易、在线活动和安全敏感操作…

SVG 字体 – SVG symbol(16)

简介 symbol 元素用来定义可重用的标记。嵌套在symbol中的形状不会显示,除非其被use元素引用。 例子 <svg width="500" height="100"><symbol id

002-00-01【大红ai源码】如何阅读dolphinscheduler源码------by孤山村头王大爷家女儿大红

【ai阅读源码-dolphinscheduler】 大红&#xff1a;你知道dolphinscheudler 吗大红&#xff1a;如何阅读dolphinscheduler 的源码 大红&#xff1a;你知道dolphinscheudler 吗 通义灵码&#xff1a; 是的&#xff0c;我知道DolphinScheduler。DolphinScheduler&#xff08;海豚…

TensorFlow Lite中文本分类在Android上的实践

#1 Tensorflow Lite TensorFlow Lite(后续简称TFL) 是 Google 开发的一个用于移动设备和嵌入式设备的开源库,旨在为移动终端设备提供机器学习推断。它是 TensorFlow 框架的轻量级版本,专门优化了模型的大小和性能,以适应资源受限的移动设备和嵌入式系统。 TFL 提供了一种在移…

go包与依赖管理

包&#xff08;package&#xff09; 包介绍 Go语言中支持模块化的开发理念&#xff0c;在Go语言中使用包&#xff08;package&#xff09;来支持代码模块化和代码复用。一个包是由一个或多个Go源码文件&#xff08;.go结尾的文件&#xff09;组成&#xff0c;是一种高级的代码…

LiveGBS流媒体平台GB/T28181功能-支持配置开启 HTTPS 服务什么时候需要开启HTTPS服务

LiveGBS功能支持配置开启 HTTPS 服务什么时候需要开启HTTPS服务 1、配置开启HTTPS1.1、准备https证书1.1.1、选择Nginx类型证书下载 1.2、配置 LiveCMS 开启 HTTPS1.2.1 web页面配置1.2.2 配置文件配置 2、验证HTTPS服务3、为什么要开启HTTPS3.1、安全性要求3.2、功能需求 4、搭…

【python】使用aiohttp库编写一个简单的异步服务器

1. aiohttp介绍 aiohttp 是一个用于编写异步 HTTP 客户端和服务器的 Python 库。它建立在 Python 的 asyncio 库之上&#xff0c;提供了一种方便的方式来处理异步请求和响应。 官网地址&#xff1a;Welcome to AIOHTTP — aiohttp 3.9.1 documentation 以下是 aiohttp 的一些…

大模型微调报错:RuntimeError: expected scalar type Half but found Float

微调chatglm 报错RuntimeError: expected scalar type Half but found Float 1. 背景 博主显卡&#xff1a;3090 最初的设置&#xff1a;bfloat16 开始训练后&#xff0c;线性层报错 2. 解决: 统一代码中所有精度 1&#xff09;将模型和数据精度都设置为torch.float32/torc…

多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料…

uniapp 解决键盘弹出页面内容挤压问题

page.json 配置 加 “app-plus”: { “softinputMode”: “adjustResize” } {"path": "pages/jxx/xx","style": {"navigationBarTitleText": "贺卡DIY","enablePullDownRefresh": false,"app-plus": {…

IndexedDB入门

https://www.cnblogs.com/zhangzuwei/p/16574791.html 注意 1.删除表&#xff0c;创建表只能在数据库版本升级里面进行。 2.keyPath: key 要和表字段对应&#xff0c;而且格式要一样&#xff0c;不然不运行不报错。 3.使用 autoIncrement: true 代替 keyPath: key&#xff…

怎么把png格式图片存储到二维码中?图片的二维码生成方法

随着二维码的广泛应用&#xff0c;越来越多的人开始探索如何将不同格式的图片与二维码相结合&#xff0c;以实现更丰富、更有吸引力的信息传递方式。在这个过程中&#xff0c;PNG格式的图片作为一种常见的无损压缩图像格式&#xff0c;被广泛应用于网络、移动应用和数字媒体等领…

Nginx中的关于配置HTTPS模块详解

Nginx中的关于配置HTTPS模块详解 Nginx是一个高性能的Web服务器和反向代理服务器&#xff0c;它支持多种协议&#xff0c;包括HTTP、HTTPS、FTP等。在Nginx中&#xff0c;HTTPS模块提供了对HTTPS的支持&#xff0c;使得网站可以安全地使用HTTPS进行数据传输。本文将详细介绍Ng…

深入解析HTTPS:安全机制全方位剖析

随着互联网的深入发展&#xff0c;网络传输中的数据安全性受到了前所未有的关注。HTTPS&#xff0c;作为HTTP的安全版本&#xff0c;为数据在客户端和服务器之间的传输提供了加密和身份验证&#xff0c;从而确保了数据的机密性、完整性和身份真实性。本文将详细探讨HTTPS背后的…