洛谷【7】P1059 [NOIP2006 普及组] 明明的随机数

简介: 洛谷【7】P1059 [NOIP2006 普及组] 明明的随机数


题目描述

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

输入格式

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

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

输出格式

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

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

输入输出样例

输入 #1复制

10

20 40 32 67 40 20 89 300 400 15


输出 #1复制

8

15 20 32 40 67 89 300 400


说明/提示

NOIP 2006 普及组 第

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  int a[1000] = { 0 },b[1000], n, m,k, i,j,num=0,t;
  scanf("%d", &n);//n个数
  for (i = 0; i < n; i++) {//输入n个数
    scanf("%d", &a[i]);
  }
  //查重
  for(i=0;i<n;i++)
    for (j = i + 1; j < n; j++) {
      if (!(a[i] - a[j]))//等价于(a[i]==a[j])
        a[j] = 0;
    }
  //将除重之后的数组重新赋值给新数组
  for (i = 0,j=0; i < n; i++) {
    if (a[i] != 0) {
      b[j] = a[i];
      j++;
      num++;
    }
  }
  //选择法排序
  for (i = 0; i < num; i++) {
    k = i;
    for (j = i + 1; j < num; j++) {
      if (b[j] < b[k]) {
        k = j;
      }
    }
    t = b[k];
    b[k] = b[i];
    b[i] = t;
  }
  //冒泡法排序
  /*
  for(j=0;j<n-1;j++)
    for(i=0;i<n-1-j;i++){
      if(a[i]>a[i+1]){
        t=a[i];
        a[i]=a[i+1];
        a[i+1]=t;
      }
    }
  */
  //输出
  printf("%d\n", num);
  for (i = 0; i < num; i++) {
    printf("%d ", b[i]);
  }
  return 0;
}

一题


相关文章
|
5月前
|
C++
【洛谷 P1059】[NOIP2006 普及组] 明明的随机数 题解(集合)
**NOIP2006普及组题目**,明明需生成不重复的1-1000间随机整数,输入含两行:第一行是整数N(≤100),第二行是N个随机数。输出两行,第一行是唯一数的个数M,第二行是排序后的唯一数。示例:输入10个数含重复,输出8个不同数排序后结果。解题方法:利用C++的`set`进行去重和排序。
61 0
|
5月前
【洛谷 P2669】[NOIP2015 普及组] 金币 题解(循环)
`NOIP2015`普及组题目,骑士按周期领金币:第一天1枚,随后$n$天每天$n$枚,然后$n+1$天每天$n+1$枚。给定天数$k$,求总金币数。输入$k$,输出金币总数。样例输入6,输出14;输入1000,输出29820。代码使用循环和变量控制周期,累计金币数。
106 0
|
5月前
【洛谷 P1909】[NOIP2016 普及组] 买铅笔 题解(打擂台法)
**摘要:** P老师需买$n$支铅笔作礼物,商店有3种包装(数量、价格不等),不能拆包。目标是最少花费。输入包括$n$和每种包装的详情,输出最小花费。样例展示最优选择过程。代码使用打擂台法求解,读入$n$和包装信息,计算每种包装的最小花费,取最小值输出。
58 0
|
5月前
【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)
`NOIP2005普及组`编程题《陶陶摘苹果》:陶陶有10个高度在100-200cm的苹果要摘,手触及最大高度+30cm板凳后能摘到的苹果数。输入10个苹果高度和她的最大触及高度,输出可摘苹果数。样例输入:10个苹果高度和110cm触及高度,输出5,表示能摘5个。代码通过逐个比较苹果高度实现统计。
72 0
|
5月前
|
C++
【洛谷 P1085】[NOIP2004 普及组] 不高兴的津津 题解(打擂台法)
**NOIP2004 普及组问题:津津的日程检查。津津每日上课时间若超8小时会不高兴。输入7行代表一周课程,输出最不高兴的日期(1-7)或0。示例输入/输出:5 3 6 2 7 2 5 3 5 4 0 4 0 6 -&gt; 3。使用C++代码通过遍历计算最大上课时间并找到对应日期。**
38 0
P1093 [NOIP2007 普及组] 奖学金(模拟排序)
P1093 [NOIP2007 普及组] 奖学金(模拟排序)
55 0
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
【2012NOIP普及组】T1. 质因数分解 试题解析
【2012NOIP普及组】T1. 质因数分解 试题解析
|
算法
【递归与递推】洛谷[NOIP2002 普及组] 过河卒
前言 本题来自洛谷P1002. 题目链接:[NOIP2002 普及组] 过河卒 - 洛谷
224 0