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
 
 
 
错误代码:
#include<stdio.h>
int main()
{
 int n,m,i,j;
 int str1[100],str2[100];
 while(scanf("%d%d",&n,&m)!=EOF){
  if(n==0 && m==0) return 0;
  else{
   for(i=0;i<n;i++){
    scanf("%d",&str1[i]);
   }
   for(j=0;j<m;j++){
    scanf("%d",&str2[j]);
   }
   i=0;
   while(i<n){
    for(j=0;j<m;j++){
     if(str1[i]==str2[j] && n>1){
      for(int k=i;k<n-1;k++){
       str1[k]=str1[k+1];
      }
      n--;
      break;
     }
     if(str1[i]==str2[j] && n==1){
      printf("NULL\n");
      
     }
    }
    if(j==m) i++;
   }
   for(i=0;i<n;i++){
    int temp;
    if(str1[i]>str1[i+1]){
     temp=str1[i+1];
     str1[i+1]=str1[i];
     str1[i]=temp;
    }
   }
   if(n>1){
    for(i=0;i<n;i++){
     printf("%d",str1[i]);
     if(i<n-1) printf(" ");
     else printf("\n");
    }
   }
  }
 }
 return 0;
}
 
随便找的:都是先排序再删除,while里的什么鬼???看不懂。。。。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int num1[105],num2[105],des[105],n,m;
int main( )
{
    while( scanf( "%d%d",&n,&m ),n|m )
    {
           memset( des,0,sizeof( des ) );
           for( int i = 0; i < n; ++i )
                scanf( "%d",&num1[i] );
           for( int j = 0; j < m; ++j )
                scanf( "%d",&num2[j] );
           for( int i = 0,f; i < n - 1;++i )//排序
           {
                f = 0;
                for( int j = 1; j < n - i; ++j )
                     if( num1[j-1] > num1[j] )
                         num1[j-1] ^= num1[j] ^= num1[j-1] ^= num1[j],f = 1;
                if( !f )
                    break;
            }
           for( int i = 0,f; i < m; ++i )//A-B
                for( int j = 0; j < n; ++j )
                     if( num1[j] == num2[i] )
                       des[j] = 1;
           int f = 0;
           for( int i = 0; i < n; ++i )//输出
                if( !des[i] )
                {
                    printf( "%d ",num1[i] );
                    f = 1;
                }
           if( !f )//如果都没有
               printf( "NULL" );
           puts( "" );
           }
    return 0;

hdu 2034的更多相关文章

  1. hdu 2034人见人爱A-B

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2034 解题思路:set的基本用法 #include<iostream> #include& ...

  2. hdu 2034 人见人爱A-B

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2034 人见人爱A-B Description 参加过上个月月赛的同学一定还记得其中的一个最简单的题目, ...

  3. hdu 2034 - 集合操作

    题意:集合A,B,计算集合差A-B(求只在集合A内的数) 解法: 选用STL内的集合set 1.建立set 1: #include<set> 2:   3: set<int> ...

  4. HDU 2034 人见人爱A-B 分类: ACM 2015-06-23 23:42 9人阅读 评论(0) 收藏

    人见人爱A-B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  5. hdu 2034 改革春风吹满地 多边形面积

    改革春风吹满地 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem ...

  6. HDU 2034 人见人爱A-B【STL/set】

    人见人爱A-B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  7. 致初学者(三): HDU 2033~ 2043题解

    下面继续给出HDU 2033~2043的AC程序,供大家参考.2033~2043这10道题就被归结为“ACM程序设计期末考试(2006/06/07) ”和“2005实验班短学期考试 ”. HDU 20 ...

  8. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  9. 杭电 2034 人见人爱A-B

    http://acm.hdu.edu.cn/showproblem.php?pid=2034 人见人爱A-B Time Limit: 2000/1000 MS (Java/Others)    Mem ...

随机推荐

  1. Spark学习笔记--Transformation 和 action

    转自:http://my.oschina.net/hanzhankang/blog/200275 附:各种操作的逻辑执行图 https://github.com/JerryLead/SparkInte ...

  2. 短信,微信API(还能发邮件,短信,IM聊天)

    1.用于微信公众平台的Js API(WeixinApi) Github地址:https://github.com/zxlie/WeixinApi http://www.baidufe.com/item ...

  3. 流风ASP.NET框架商业版-工作流1.0简介

    流风ASP.NET框架商业版-工作流1.0简介 工作流简介 在流风ASP.NET框架商业版1.0推出后,就有集成工作流的想法,但是由于工作繁忙和其他事情的耽搁,时隔半年之久工作流1.0的版本才姗姗来迟 ...

  4. Jquery让图片根据浏览器窗口大小自动缩放

    (function($){ $.fn.resizeimage = function(){ var imgLoad = function (url, callback) { var img = new ...

  5. HDU--3487 Play with Chain (Splay伸展树)

    Play with Chain Problem Description YaoYao is fond of playing his chains. He has a chain containing ...

  6. redis 学习笔记二 (简单动态字符串)

    redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来 ...

  7. Webservice-Java-Xfire

    最近公司最近需要将以前提供出去的接口统一用一个标准来实现,考虑到webservice这个是标 准,因此我花时间大概学习了一下webservice,也对JAVA的几个webservice框架进行了一些小 ...

  8. vuex 模块

    今天,在我编写系统中一个模块功能的时候,由于我使用vuex存储数据的状态,并分模块存储.我是这样在存储文件中定义state,getters,actions,mutations的,我打算在不同模块文件都 ...

  9. oracle 同样数据删除(仅仅留一条)

    DELETE FROM reg_user t1 WHERE user_name='9527008' and rowid > ( SELECT min(rowid) FROM location t ...

  10. JavaScript 之 call apply bind

    关键字 this 绑定的方法 this的动态切换,固然为JavaScript创造了巨大的灵活性,但也使得编程变得困难和模糊.有时,需要把this固定下来,避免出现意想不到的情况.JavaScript提 ...