洛谷——P1059 明明的随机数
生活随笔
收集整理的這篇文章主要介紹了
洛谷——P1059 明明的随机数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了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 普及組 第一題
?
AC:
#include <iostream> using namespace std;int n; int aa[100+10]; int b[100+10], bnum = 0; bool vis[1002] = {false};void quickSort(int a[], int low, int high) {if(low < high){int i = low, j = high, p = a[low];while(i < j){while(i<j && a[j] >= p) --j;a[i] = a[j];while(i<j && a[i] <= p) ++i;a[j] = a[i];}a[i] = p;quickSort(a,low,i-1);quickSort(a,i+1,high);} } int main() {scanf("%d", &n);for(int i = 0; i < n; i++){scanf("%d", &aa[i]);}//去重for(int i = 0; i < n; i++){if(vis[aa[i]] == false){b[bnum++] = aa[i];vis[aa[i]] = true;}}//快速排序quickSort(b,0,bnum-1);printf("%d\n",bnum);for(int i = 0; i < bnum; i++){printf("%d ", b[i]);}return 0; }?
總結
以上是生活随笔為你收集整理的洛谷——P1059 明明的随机数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷——P1177 【模板】快速排序
- 下一篇: 洛谷——P1068 分数线划定