zoukankan      html  css  js  c++  java
  • HDOj-1412

    {A} + {B}

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 17014    Accepted Submission(s): 7110


    Problem Description
    给你两个集合,要求{A} + {B}.
    注:同一个集合中不会有两个相同的元素.
    Input
    每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.
    Output
    针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开.
    Sample Input
    1 2
    1
    2 3
    1 2
    1
    1 2
     
    Sample Output
    1 2 3
    1 2
     
    两集合相加排序后输出的问题,比较水的一道题,注意集合内没有相同的元素这一点。
    附自AC代码:
     1 #include<iostream>
     2 #include<algorithm>//包含了排序函数sort 
     3 #include<cstdio>
     4 using namespace std;
     5 int main(){
     6     int n,m;
     7     while(~scanf("%d %d",&n,&m)&&n&&m){
     8         int i,a[20010];
     9         for(i=0;i<n+m;i++){//直接将两个集合全部输入a数组中 
    10             scanf("%d",&a[i]);
    11         }
    12         sort(a,a+m+n);//对a数组进行排序 
    13         printf("%d",a[0]);//首先输出a[0],避免与之后的判断语句冲突 
    14         for(i=1;i<n+m;i++){
    15             if(a[i-1]==a[i])//当数组内存在相等元素时,跳过其他相等元素只输出最后一个 
    16             continue;
    17             else
    18             printf(" %d",a[i]);
    19         }
    20         printf("
    ");//不要忘记最后的
    ; 
    21     }
    22     return 0;
    23 } 

    P.S:

    写这题的时候突然想系统的巩固一下几大排序算法(总不能老用sort()。。),这几天重点学习一下,争取近几日开一个排序专栏!

  • 相关阅读:
    MySQL group_concat() 函数用法
    Git error The file will have its original line endings in your working directory
    SQL exists 基本用法
    (11) 严格模式(use strict)
    (10)变量提升
    (9)调试
    (8)正则表达式
    (7)类型转换
    (6)typeof, null, 和 undefined
    (5)运算符
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/5463436.html
Copyright © 2011-2022 走看看