C++刷题——{A} + {B} 实现集合的相加

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
/* Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作者:陈丹妮
 * 完成日期:2015年 5 月 24 日
 * 版 本 号:v1.0
 */
#include <iostream>
using namespace std;
int main()
{
    int n,m,i,j,a[20002],b[20002],t;
    while(cin>>n>>m)
    {
        for(i=0; i<n+m; i++)
            cin>>a[i];
        for(i=0; i<n+m-1; i++)
            for(j=0; j<n+m-i-1; j++)
                if(a[j]>a[j+1])
                {
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
        b[0]=a[0];
        j=0;
        for(i=1; i<n+m; i++)
            if(b[j]!=a[i])
            {
                j++;
                b[j]=a[i];
            }
        cout<<b[0];
        for(i=1; i<=j; i++)
            cout<<' '<<b[i];
        cout<<endl;

    }
    return 0;
}

心得体会:这道题做了好久好久,如果谁有更好的方法,请告诉我一下,谢谢!继续努力咯!

时间: 2024-09-30 07:03:21

C++刷题——{A} + {B} 实现集合的相加的相关文章

Python刷题实用小tips集合(持续更新)

目录 哈希表 定义: map函数 ord和chr 范围限制的32字节的字符串数字一行代码输出 二维矩阵的转置(运用zip的一行代码) 二维矩阵的快速初始化 二维矩阵的快速list化 双向队列的默认实现 快速全排列罗列 找到字典中值最大的键 统计list中数出现的数量 异或的一些骚操作 关于递归的理解(知乎转载) filter函数过滤掉数组中的部分元素 二维矩阵中的行列互换,增删 右移一位和除二操作的关系 一些python的常用技巧,学会了非常方便实现一些基本功能 强推 9.全排列 12.异或 1

leetcode 刷题(2)--- 两数相加

给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 解法: class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2

今日刷题集合

月考没考,最皮的是刷题效率低的可怕,搜索中的那些回溯用的还是很水,不如总结一下. codevs 题号:1501 1506 1842 1983 2549 2806 3143 3145 1008 1294 1295 1501 二叉树的最大宽度和高度(没加using namespace std ;会过不去编译,max.min函数封装在#include<iostream>里,所以没有using namespace std ;不行.) 1 #include<bits/stdc++.h> 2

用js刷题的一些坑

leecode可以用js刷题了,我大js越来越被认可了是吧.但是刷题中会因为忽略js的一些特性掉入坑里.我这里总结一下我掉过的坑. 坑1:js中数组对象是引用对象 js中除了object还有数组对象也是引用对象,这点常常被忽视,所以在递归的时候传递数组要用arr.slice(0)这样复制一个一样的新数组,不然会出现你传入的数组会被同级的递归改变,结果就不对了. 所以只要数组复制的地方最好都要这么写,除非你真的想引用.而且注意是slice不是splice这两个方法差别很大,你如果用splice(0

BZOJ 刷题记录 PART 4

[BZOJ1143]CTSC的题目...先用floyed传递闭包,然后直接上匈牙利算法. [BZOJ1452]从未写过的二维树状数组.好像很简单.. struct two_bit { int f[305][305]; inline void add(int x,int z,int A) { for (;x<=n;x+=L(x)) for (int y=z;y<=m;y+=L(y)) f[x][y]+=A; } inline int ask(int x,int z) { int ans=0; f

[2015.6.28] OI刷题记录

FZSZOJ刷题记录: 1051 砝码称重: DP 多重背包 1058 liqeuer: 序列DP 1061 挖地雷:DP,注意需要倒过来做DP,同时记录路径. 1059 Number:DP 1054 数塔问题:同数字三角形,普通DP 1390 等式问题:爆搜,枚举每个+号或-号的位置 1006 中位数:维护大根堆+小根堆,每次插入调整 1005 Cube Stacking:并查集维护当前在第几个和当前集合的高度,并查集变种. 1073 DNA分子的最佳比对:序列DP 1110 奖学金:傻逼题,

首师大附中科创教育平台 我的刷题记录 0284 最强大脑

从现在开始,我的刷题记录都开始给大家一个一个刷!今天给大家献上“E”级题:最强大脑!! 试题编号:0284     最强大脑 难度级别:E: 运行时间限制:3000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 zhb国是一个传说中的国度,国家的居民叫做最强(chang)大脑(diao).Zhb国是一个N×M的矩形方阵,每个格子代表一个街区.然而zhb国是没有交通工具的.居民大脑(diao)们完全靠地面的弹射装置来移动.每个街区都装有弹射装置.使用弹射装置是需

python部落刷题宝学到的内置函数(二)

感觉到刷题宝有一个好处,也许也不是好处,它的答案必须是真正输出的值,也就是说应该输出字符串aaaa的时候,答案必须写成界面上返回的值,即'aaaa'.有利于真正记忆返回值类型,但是....太繁琐了 1.getattr():python自省函数,用于查看某对象是否具有某种属性并返回属性值或者末字符串,参数格式(一个对象, 属性名称字符串, 不存在时输出的字符串),举个例子: 1 class A: 2 def __init__(self): 3 self.name = 'hahahaha' 4 a

刷题之路第四题--取两个顺序数组的数值的中位数

Median of Two Sorted Arrays 简介:取两个顺序数组的数值的中位数 问题详解: 给定两个排序的数组nums1和nums2分别为m和n,我们需要的是两个数组中所组成一个数列的中位数. 注意: 1.需要判断数组NPE 2.结果不是int 举例 1: nums1 = [1, 3] nums2 = [2] 中位数是 2.0 2: nums1 = [1, 2] nums2 = [3, 4] 中位数是 (2 + 3)/2 = 2.5 JAVA 实现方法一: 通过NPE判断后将两个数组