zoukankan      html  css  js  c++  java
  • UVa 496

      题目大意:给你两个集合,判断两个集合的关系(不相交、相等、真子集和其他)。简单判断就可以了,不过STL的set没有交集、并集等操作有点让人觉得不方便...

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <set>
     4 using namespace std;
     5 
     6 set<int> intersection(const set<int> &a, const set<int> &b)
     7 {
     8     set<int>::iterator itA = a.begin(), itB = b.begin();
     9     set<int> c;
    10     while (itA != a.end() && itB != b.end())
    11     {
    12         if (*itA == *itB)
    13         {
    14             c.insert(*itA);
    15             itA++;
    16             itB++;
    17         }
    18         else if (*itA < *itB)  itA++;
    19         else if (*itA > *itB)  itB++;
    20     }
    21     return c;
    22 }
    23 
    24 int main()
    25 {
    26 #ifdef LOCAL
    27     freopen("in", "r", stdin);
    28 #endif
    29     int x;
    30     while (scanf("%d", &x) != EOF)
    31     {
    32         set<int> A, B, C;
    33         A.insert(x);
    34         C.insert(x);
    35         while (getchar() != '
    ')
    36         {
    37             scanf("%d", &x);
    38             A.insert(x);
    39             C.insert(x);
    40         }
    41         scanf("%d", &x);
    42         B.insert(x);
    43         C.insert(x);
    44         while (getchar() != '
    ')
    45         {
    46             scanf("%d", &x);
    47             B.insert(x);
    48             C.insert(x);
    49         }
    50         if (A.size() + B.size() == C.size())  printf("A and B are disjoint
    "); 
    51         else if (A == B)  printf("A equals B
    ");
    52         else
    53         {
    54             set<int> s = intersection(A, B);
    55             if (A == s)  printf("A is a proper subset of B
    ");
    56             else if (B == s)  printf("B is a proper subset of A
    ");
    57             else  printf("I'm confused!
    ");
    58         }
    59     }
    60     return 0;
    61 }
    View Code

      


    @2013-11-10 11:50:07

     前两天看C++ Primer的时候,看到标准库里有set_union(), set_intersection(), set_difference() 和 set_symmetirc_difference()函数,就重写了一下,提交后和上面那个代码时间一样,不过省了不少功夫哈,对c++还是不熟悉啊,还要多学习。

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <set>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9 #ifdef LOCAL
    10     freopen("in", "r", stdin);
    11 #endif
    12     int x;
    13     while (scanf("%d", &x) != EOF)
    14     {
    15         set<int> A, B, C;
    16         A.insert(x);
    17         C.insert(x);
    18         while (getchar() != '
    ')
    19         {
    20             scanf("%d", &x);
    21             A.insert(x);
    22             C.insert(x);
    23         }
    24         scanf("%d", &x);
    25         B.insert(x);
    26         C.insert(x);
    27         while (getchar() != '
    ')
    28         {
    29             scanf("%d", &x);
    30             B.insert(x);
    31             C.insert(x);
    32         }
    33         if (A.size() + B.size() == C.size())  printf("A and B are disjoint
    ");
    34         else if (A == B)  printf("A equals B
    ");
    35         else
    36         {
    37             set<int> s;
    38             set_intersection(A.begin(), A.end(), B.begin(), B.end(), inserter(s, s.begin()));
    39             if (A == s)  printf("A is a proper subset of B
    ");
    40             else if (B == s)  printf("B is a proper subset of A
    ");
    41             else  printf("I'm confused!
    ");
    42         }
    43     }
    44     return 0;
    45 }
    View Code
  • 相关阅读:
    ASP.NET Core 问题排查:Request.EnableRewind 后第一次读取不到 Request.Body
    解决 AutoMapper ProjectTo 不起作用的问题
    解决 ASP.NET Core 自定义错误页面对 Middleware 异常无效的问题
    ASP.NET Core 从 gitlab-ci 环境变量读取配置
    终于解决 xUnit.net 测试中无法输出到控制台的问题
    ASP.NET Core 新建线程中使用依赖注入的问题
    前端回顾:2016年 JavaScript 之星
    前端工程师和设计师必读文章推荐【系列三十五】
    AsciiMorph
    Notyf
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3350159.html
Copyright © 2011-2022 走看看