• 实验7:Problem C: STL——Jerry的问题


    Description

    最近Jerry正在刻苦的学习STL中的set的功能函数,他发现set可以用现有的函数实现并、交、差、对称差等功能,但是他没有找到怎么来比较两个集合是否相等的功能函数,所以他想自己用其他的功能函数来实现能判断两个集合是否相等的功能函数。聪明的Jerry不一会就想到了解决办法,现在他想拿这道题来考考你,看你有没有他聪明。
     

    Input

    输入有多组,每组数据有两行,每一行都代表一个集合,每一行有若干个正整数(0<d<=2147483647),并且每行的最后一个数字都是0,代表该行数据的结束,且末尾的0不计入集合中。最后以EOF结束输入。

    Output

    对于每组数据输出都要输入一个结果,如果两个集合相等便输出“YES”,否则输出“NO”,每个结果占一行
     

    Sample Input

    1 2 3 4 0 1 2 3 4 0 1 2 2 2 2 2 0 1 2 0 1 2 3 4 0 1 3 3 4 0

    Sample Output

    YES YES NO

    HINT

    对称差运算:得到的结果是第一个集合与第二个集合的差集并上第二个与第一个的差集

    结合B题并使用上述提示可以很快AC!

    Append Code

    #include<iostream>
    #include<algorithm>
    #include<set>
    
    using namespace std;
    int main()
    {
        int t,j;
        while(cin>>t)
        {
            set<int> A;
            set<int> B;
            set<int> tmp1,tmp2,tmp3;
            if(t!=0)
              {
                  A.insert(t);
                  while(cin>>t&&t!=0)
                    A.insert(t);
              }
            while(cin>>t&&t!=0)
              B.insert(t);
            set_difference(A.begin(), A.end(), B.begin(), B.end(), inserter(tmp1, tmp1.begin()));
            set_difference(B.begin(), B.end(), A.begin(), A.end(), inserter(tmp2, tmp2.begin()));
            set_union(tmp1.begin(), tmp1.end(), tmp2.begin(), tmp2.end(), inserter(tmp3, tmp3.begin()));
            if(tmp3.empty())
                cout<<"YES"<<endl;
            else
                cout<<"NO"<<endl;
        }
        return 0;
    }
    向代码最深处出发~!
  • 相关阅读:
    Office Web Apps Server 2013与PDF(一)
    关于EF Unit of Work Repository的简单用法
    从3层开始
    使用ms owin 搭建oauth2 server
    让自己的程序支持livewriter
    angularjs 从外部改变controller内的数据
    vs2013 update 2 cordova(phonegap) 环境
    asp.net web api 跨域,带cookie
    c#与IronPython Clojure-clr的调用
    Mvc Moq HttpContext
  • 原文地址:https://www.cnblogs.com/auto1945837845/p/5396541.html
Copyright © 2020-2023  润新知