首页 > [NOIP2006]明明的随机数
头像 savage
发表于 2019-08-22 14:46:43
题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N ≤ 100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你 展开全文
头像 平凡的小白
发表于 2020-05-29 15:17:33
思路:出现的数字在之内,又要排序又要去重,桶排序最合适了。1.出现的数字赋值为1,不管出现几次都是1,这就完成了去重。2.统计第一次出现的数字的个数就是去重后剩余的个数。3.从枚举,如果它的值为1,就输出,完成了排序。Code: #include<bits/stdc++.h> #defi 展开全文
头像 savage
发表于 2019-09-07 17:24:22
算法知识点: 排序,去重 复杂度: 解题思路: 考察了两个函数的使用: sort:可以将序列排序。 unique:可以将序列中所有相邻的重复元素删除(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素覆盖了。最后会返回不重复序列 展开全文
头像 syx666666
发表于 2022-05-01 10:04:05
[NOIP2006]明明的随机数 链接:https://ac.nowcoder.com/acm/contest/19306/1029 来源:牛客网 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的 展开全文
头像 sunrise__sunrise
发表于 2020-05-22 09:29:36
解题思路 数据规模比较小,10000个数,set可以接受的常数。直接set就行了 #include <bits/stdc++.h> #pragma GCC optimize(2) #pragma GCC optimize(3) using namespace std; #define 展开全文
头像 ziuch
发表于 2020-08-21 18:49:42
题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N ≤ 100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学 展开全文
头像 鑫宸。
发表于 2022-09-08 13:27:43
1、题目大意 明明用计算机生成了N个1到1000之间的随机整数(N ≤ 100),对于其中重复的数字,只保留一个,把其余相同的数去掉。然后再把这些数从小到大排序。请你协助明明完成“去重”与“排序”的工作。 2、思路分析 (1)数组标记。用数组is[i]标记i是否出现过。每读入一个x 展开全文
头像 威风镰鼬
发表于 2021-06-10 17:17:57
#[NOIP2006]明明的随机数# 思路 去重+排序=>计数排序看一眼数据范围完全够用。 代码 #include<bits/stdc++.h> using namespace std; int n,a,cnt=0,mp[1005]={0}; int main(){ s 展开全文
头像 傻喵
发表于 2021-08-09 13:41:53
排序+双指针 #include<iostream> #include<algorithm> using namespace std; const int N=110; int a[N]; int b[N]; int main() { int n; scanf(&q 展开全文
头像 牛客Answer
发表于 2021-01-24 18:45:52
选取合适的桶,题目上给定生成了N个1到1000之间的随机整数,所以可是设置一个a[1001]数组。可以先进行去重,在对1001个元素进行排序。去重代码 memset(a,0,sizeof(a)); //对a初始化 for(int i=0;i<n;i++) { 展开全文