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

对于这种既需要去重 有需要排序 的数列,我们可以使用 STL 中的 set 容器,它不仅可以去重 ,且还可以排序,正好符合题目标准。

思路

  1. 我们先定义一个 set 容器 st,接着输入 n 个数。提示:输入的 n 个数可以不用数组。
  2. 随后将所有输入的 t 给 insert 进去,此时在 set 容器里的数将自动完成去重排序的任务。
  3. 题目中说明了需要先输出一个数,代表 st 的长度,这时可以用 size 来输出。(size 代表长度)

我们可以用 2 种使用 set 的输出方法:

第一种:

cpp 复制代码
for(auto it:st){
	cout<<it<<' ';
}

第二种:

cpp 复制代码
for(auto it = st.begin();it!=st.end();it++){
	cout<<*it<<' ';	
}

AC CODE:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
set<int> st;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		int t;
		cin>>t;
		st.insert(t); 
	} 
	cout<<st.size()<<endl;
	for(auto it:st){
		cout<<it<<' ';
	}
	return 0;
}

注意:正确代码不是唯一的,也可以用数组模拟去重和排序的过程。

相关推荐
笑鸿的学习笔记19 分钟前
qt-C++语法笔记之Qt Graphics View 框架中的类型辨析完全指南
c++·笔记·qt
山居秋暝LS20 分钟前
安装C++版opencv和opencv_contrib
开发语言·c++·opencv
谭欣辰1 小时前
LCS(最长公共子序列)详解
开发语言·c++·算法
Cando学算法1 小时前
鸽笼原理(抽屉原理)
c++·算法·学习方法
郝学胜-神的一滴2 小时前
跨平台动态库与头文件:从原理到命名的深度解析
linux·c++·程序人生·unix·cmake
代码中介商2 小时前
C++ 仿函数(Functor)深度解析:从基础到应用
开发语言·c++
王老师青少年编程2 小时前
csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:[NOIP 2018 普及组] 标题统计
c++·字符串·csp·高频考点·信奥赛·专项训练·标题统计
冯诺依曼的锦鲤3 小时前
从零实现高并发内存池:TCMalloc 核心架构拆解
c++·学习·算法·架构
江南十四行3 小时前
排序算法进阶:直接插入排序(简单排序)与希尔排序
数据结构·算法·排序算法
CoderCodingNo3 小时前
【CSP】CSP-J 2021真题 | 插入排序 luogu-P7910 (适合GESP四-六级及以上考生练习)
数据结构·算法·排序算法