首页 > 其他分享 >55 人见人爱A-B 东华oj

55 人见人爱A-B 东华oj

时间:2024-03-15 15:30:01浏览次数:24  
标签:oj 55 st 人见人爱 int 集合 include 输入 cout

1.问题描述

A和B是两个集合,A-B求的是两个集合的差,就是做集合的减法运算。

2. 输入说明

输入数据包含T个测试实例。

首先输入数字T,然后输入T组测试数据,每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间由一个空格隔开. 

3.输出说明

针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格. 

4.输入

 2
3 3 1 2 3 1 4 7
3 7 2 5 8 2 3 4 5 6 7 8

5.输出

 2 3 
NULL 

6.我的解法

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{
    return a<b;
}
int main()
{
    int h;
    cin>>h;
    while(h!=0)
    {
        h--;
        int m,n;
        cin>>m>>n;
        if(m==0)
        {
            cout<<"NULL"<<endl;
            return 0;
        }
        int num1[m];
        int flag[m]={0};//标记数组
        int num2[n];
        for(int i=0;i<m;i++)
            cin>>num1[i];
        for(int i=0;i<n;i++)
            cin>>num2[i];
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                if(num1[i]==num2[j])
                {
                    flag[i]=1;
                    break;
                }
            }
        }
        int output=0;
        vector<int> v;
        for(int i=0;i<m;i++)
        {
            if(flag[i]==0)
            {
                v.push_back(num1[i]);
                output=1;
            }
        }
        if(output==0) cout<<"NULL"<<endl;
        else
        {
            sort(v.begin(),v.end(),cmp);
            for(int i=0;i<v.size();i++)
            {
                cout<<v[i]<<" ";
            }
            cout<<endl;
        }

    }
    return 0;
}

7.更简单的代码

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,m;
        cin>>n>>m;
        set<int> st;//集合的创建,可以自动排序,去重
        int x;
        for(int i=0;i<n;i++)
        {
            cin>>x;
            st.insert(x);//自动去重
        }
        for(int i=0;i<m;i++)
        {
            cin>>x;
            st.erase(x);//删除st集合中值为x的数
        }
        if(st.size()==0)
            cout<<"NULL";
        else
        {
            for(set<int>::iterator i=st.begin();i!=st.end();i++)
                cout<<*i<<" ";
        }
        cout<<endl;
    }
    return 0;
}

标签:oj,55,st,人见人爱,int,集合,include,输入,cout
From: https://blog.csdn.net/qq_51644945/article/details/136740862

相关文章

  • 代码随想录算法训练营第七天|LeetCode 344.反转字符串、541.反转字符串II、卡码网54.替
    344.反转字符串题目描述:​编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须**原地修改输入数组**、使用O(1)的额外空间解决这一问题。示例一:输入:s=["h","e","l","l","o"]输出:["o","l","l......
  • abc155F题解
    abc155F题意:给定\(n\)个灯泡的位置\(a_i\)和状态\(b_i(0/1)\)。给定\(m\)个开关控制区间\([l_i,r_i]\)中所有的灯泡,即使用这个开关会使\([l_i,r_i]\)中所有的灯泡的状态都取反。问能否使这\(n\)个灯泡的状态都变成\(0\),如果可以,输出一种方案,否则,输出\(-1\)。思路:神仙转化题。......
  • lc1755 最接近目标值的子序列和
    给你一个整数数组nums和一个目标值goal,需要从nums中选出一个子序列,使子序列元素总和最接近goal,返回abs(sum-goal)可能的最小值。数组的子序列指通过移除原数组中的某些元素(可能全部或无)而形成的数组。1<=nums.length<=40;-1e7<=nums[i]<=1e7;-1e9<=goal<=1e9值域过大,不能用背......
  • HDOJ 2037
    今年暑假不ACProblemDescription“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%…”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看......
  • SMK20-12255保护测控装置电源板:功能特性与广泛应用解析
    SMK20-12255保护测控装置电源板:功能特性与应用解析SMK20-12255保护测控装置电源板是一种专用于电力系统的高性能电源供应与监测控制设备。它以其稳定可靠的电源供应、精准实时的电力参数监测以及快速响应的保护机制,为电力系统的安全稳定运行提供了重要保障。一、功能特性高......
  • 基于java+springboot+vue实现的美食网站系统(文末源码+Lw+ppt)23-55
    摘   要互联网的兴起从本质上改变了整个社会对信息的管理方式,我国从上个世纪90年代互联网兴起之时,就产生了通过网络进行系统管理的想法。但是由于在互联网上的信誉难以认证、网络的法规政策不健全等一系列的原因,限制了网上信息管理发展的步伐。进入21世纪以后,随着整个社会......
  • HQL 55 题【持续更新】
    前言    今天开始为期一个多月的HQL练习,共55道HQL题,大概每天两道,从初级函数到中级函数。这次的练习不再是基础的join那种通用SQL语法了,而是引入了更多Hive的函数(单行函数、窗口函数等)。      我会把HQL中函数和语法的一些注意事项写在每一题......
  • 【OJ】K 个一组翻转链表
    题目基本思路:用计数+栈实现分段,K个一组地翻转链表。#include<bits/stdc++.h>#include<stack>usingnamespacestd;structlist_node{intval;structlist_node*next;};list_node*input_list(){intval,n;scanf("%d",&n);list_node*phea......
  • 【OJ】猫狗队列
    猫狗队列思路用两个队列分别保存猫、狗,用各个的入队计数判断任一出队时选择哪一种,指定类别出队则直接从相应队列出队。实现Python输入测试testCatDogQ.txt65adddog29addcat9adddog40adddog38addcat32adddog20addcat45pollAlladdcat37isDogEm......
  • 【easy52pojie】一款方便看吾爱论坛帖子的爬虫程序
    【easy52pojie】一款方便看吾爱论坛帖子的爬虫程序众所周知吾爱论坛一页最多显示十来条回帖,且间隔很大,每页的信息密度太低了。在帖子很庞大的情况下,一页一页翻页,着实有点痛苦。故简单敲敲代码,使用requestxpath技术做了一个论坛帖子回复查看器,名称为easy52pojie,运行代码即可导出......