hdu-oj 2034 人见人爱A-B

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

人见人爱A-B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 43501    Accepted Submission(s): 12237


Problem Description
参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)

呵呵,很简单吧?
 

Input
每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开.
如果n=0并且m=0表示输入的结束,不做处理。
 

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

Sample Input
3 3 1 2 3 1 4 7 3 7 2 5 8 2 3 4 5 6 7 8 0 0
 

Sample Output
2 3 NULL
 
题目大意:如果A集合中有元素不等于B集合任意元素则输出A中该元素
解题思路:将A中元素分别遍历B集合元素,没有相同则将该元素保存在另一集合C中,
通过sort函数从小到大排列输出。
注意:最后一个元素之后也要加空格。
附代码:
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
    int m,n,i,j,t,k,g,h,temp;
    int a[100],b[100],c[100];
/*输入部分*/
    while(scanf("%d%d",&n,&m)!=EOF)
    {
       if(m==0&&n==0)
          break;
       else
       {
           for(i=0;i<n;i++)
               scanf("%d",&a[i]);
           for(j=0;j<m;j++)
               scanf("%d",&b[j]);
/*数据处理部分*/             
           t=0;                  /*满足输出集合元素的个数及数组C的下标*/ 
           for(i=0;i<n;i++)
           {
              k=0;
              for(j=0;j<m;j++)
              {
                  if(a[i]!=b[j])
                      k++;
              }
              /*将数组a中与数组b不同的元素依次赋给数组c*/ 
              if(k==m)
              {
                  c[t]=a[i];
                  t++;
              }
           }
           sort(c,c+t);
/*冒泡排序法,由小到大排序*/
          /* for(g=0;g<t;g++)
             for(h=(g+1);h<t;h++)
             {
                if(c[g]>c[h])
                {
                   temp=c[g];
                   c[g]=c[h];
                   c[h]=temp;
                }
             }  */
/*输出结果*/ 
           for(g=0;g<t;g++)
               printf("%d ",c[g]);
           if(t!=0)
               printf("\n");
           else
               printf("NULL\n");
        }
    }
    return 0; 
}

HDU 水题(基础题)附各大OJ题目分类 入门必备~~HDU1000 HDU1001 HDU1004 HDU1005 HDU1008 HDU1012 HDU1013 HDU1014 HDU1017 HDU1019 HDU1021 HDU1028 HDU1029 HDU1032 HDU1037 HDU1040 HDU1048 HDU1056 HDU1058 HDU1061 HDU1070 HDU1076 HDU1089 HDU1090 HDU 阅读详情

相关推荐

HDU 2034 (人见人爱A-B)(超级简单做法+经验分享)

人见人爱A-B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 129158 Accepted Submission(s): 36180 Problem Description 参加上个月同学一定还记得其中的一个最简单的...

重燃2020!!! 1181

(补)

问题 A: 分组 小明的班级在上体育课,老师想让大家分成两组玩拔河。现在大家排成了一排,老师嫌麻烦,所以想直接在队伍中间找个位置断开,这样不就分成了两组了吗?但是这个老师的思维很奇怪,他觉得分成人数相等的两组会不公平,他想让两组的体重和的差最小(差值要求体重和大的值减小的值)。老师把这个任务交给了小明,你能帮帮他吗? 输入 第一行为一个正整数n,表示小明班的人数。 第二行为n个正整数,表示这一排从...

宇宙无敌大可爱CUU的博客 1104

杭电oj HDOJ 2034 人见人爱A-B

杭电oj HDOJ 2034 人见人爱A-B Problem Description 参加上个月同学一定还记得其中的一个最简单题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下) 呵呵,很简单吧? Input 每组输入数据占1行,每行数...

qq_39880604的博客 599

人见人爱A-B

参加上个月同学一定还记得其中的一个最简单题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下) 呵呵,很简单吧? Input 每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每

weixin_52465932的博客 394

第十一届蓝桥杯国题目题解

#mermaid-svg-DRCWXUtjV0dqOc7d .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-DRCWXUtjV0dqOc7d .label text{fill:#333}#mermaid-svg-DRCWXUtjV0dqOc7d .node rect,#mermaid-svg-DRCWXUtjV0

m0_51283348的博客 4507

HDU OJ 2034.人见人爱A-B

Problem Description 参加上个月同学一定还记得其中的一个最简单题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下) 呵呵,很简单吧? Input 每组输入数据占1行,每行数据的开始是2个整数n(0 如果n=0

Yountreeg的博客 746

HDU_oj_2034 人见人爱A-B

Problem Description 参加上个月同学一定还记得其中的一个最简单题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下) Input 每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100...

weixin_30872337的博客 103

2034——人见人爱A-B

http://acm.hdu.edu.cn/showproblem.php?pid=2034 这道题注意的是集合最后输出是按从小到大的顺序的。。。。 还有就是赋初值,在一次比较后要将值归零!!还有就是记住A-B的特点,就是在A中而不再B中的值。 #include<stdio.h> int main(){ void sort(int a[],int n);...

aozhe0658的博客 136

杭电2034 人见人爱A-B

杭电2034 http://acm.hdu.edu.cn/showproblem.php?pid=2034   题目大意: 两个集合(元素没有重复的),前一个集合元素‘-’后一个集合元素,即前一个集合中有的,在后一个集合中有的,减去后即不存在即可。 即集合的差运算。 (差运算定义) 可以用判断数组间是否相同,相同即将前一个数组元素置0,然后遍历非0输出即可。 注意,行末要求空...

Sensente的博客 367

HDU2034 人见人爱A-B

问题链接:HDU2034 人见人爱A-B。 问题简述:参见上述链接。 问题分析:这是一个求整数集合差的问题,是基础训练题。解题思路可以参考:HDU1412 {A} + {B}。 平日里,使用C++容器的set类,可是不知道是怎么实现的。做了这两个题起码略知一二。 求集合的差,算法过程略微复杂一点。 这里分别给出C和C++程序。用C语言写程序,才能够知道许多...

weixin_34112900的博客 71

hdu 2034 人见人爱A-B

http://acm.hdu.edu.cn/showproblem.php?pid=2034 #include #include #include using namespace std; int main() {   int n,m;   int i,j,t;   long int a[102],b[102];   while (cin>>n>>m)   {       if(!n&

wwk0125的专栏 500

杭电OJ-2034(C)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2034 #include <stdio.h> typedef struct{ int num,flag; }aa; aa a[110],b; int n,m,count; void deal(int num) { for(int i=0;i<n;i++) if(a[i].num==...

qq_40467670的博客 622

HDUOJ 2034人见人爱A-B

HDUOJ 2034人见人爱A-B Problem Description 参加上个月同学一定还记得其中的一个最简单题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下) 呵呵,很简单吧? Input 每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素

qq_45114168的博客 262

hdu 2034人见人爱A-B

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2034 解题思路:set的基本用法 1 #include<iostream> 2 #include<string.h> 3 #include<stdio.h> 4 #include<set> 5 using namespace ...

weixin_30702887的博客 97

杭电oj 2034

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2034人见人爱A-B算法分析:用flag标志A与B相同的元素,不同时装入第三个数组。 注意:题目要求输出每个元素后有一个空格,不要用以往处理空格的方式做题,否则会出Presentation Error我的ac代码:#include&lt;stdio.h&gt; void Insertion_Sort(...

lionztt的博客 918

杭电oj —— 2034

package com.demo2; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; /* * 参加上个月同学一定还记得其中的一个最简单题目,就是{A}+{B},那个题目求的是两个集合的并集, * 今天我们这个A-...

LiLi_code的博客 534

hdu oj2034 逆向思维解决(set 和 map搞定)

原因:因为set和map都是关联式容器,可以按键值自动排序,可以省掉使用其他容器所消耗的排序时间。 1.map实现: 思路:用键值作为A集合的数据,实值作为判断是否在集合在B集合的标志。在输入集合B中的数据时判断集合B的元素是否和集合A重复,如果重复则将改变重复元素对应的对组实值。 #include&lt;iostream&gt; #include&lt;map&gt; using namespa...

weixin_43971252的博客 233

HDU ACM 2034 水题思路

杭电ACM 2034 解析

ZoraZora的博客 729

step1_入门_ACM基础训练 人见人爱A-B

http://acm.hdu.edu.cn/showproblem.php?pid=2034   在这道题发现的个人问题是对输入的条件判断理解不深刻,只有m n都为0时才不继续执行,其余会继续执行的。!! 另外,请牢记set的用法。 AC代码 #include&lt;iostream&gt; #include&lt;set&gt; using namespace std; int ma...

有关我的科研的足迹、算法竞赛的日子、生活记录。 343
上一篇: hdu-oj 2036 改革春风吹满地(多边形面积)
下一篇: hdu-oj 2037 今年暑假不AC
MatchstickMen
博客等级 码龄12年 2粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值