博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 496 - Simply Subsets
阅读量:6914 次
发布时间:2019-06-27

本文共 2976 字,大约阅读时间需要 9 分钟。

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

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 set
intersection(const set
&a, const set
&b) 7 { 8 set
::iterator itA = a.begin(), itB = b.begin(); 9 set
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 LOCAL27 freopen("in", "r", stdin);28 #endif29 int x;30 while (scanf("%d", &x) != EOF)31 {32 set
A, B, C;33 A.insert(x);34 C.insert(x);35 while (getchar() != '\n')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() != '\n')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\n"); 51 else if (A == B) printf("A equals B\n");52 else53 {54 set
s = intersection(A, B);55 if (A == s) printf("A is a proper subset of B\n");56 else if (B == s) printf("B is a proper subset of A\n");57 else printf("I'm confused!\n");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 
2 #include
3 #include
4 #include
5 using namespace std; 6 7 int main() 8 { 9 #ifdef LOCAL10 freopen("in", "r", stdin);11 #endif12 int x;13 while (scanf("%d", &x) != EOF)14 {15 set
A, B, C;16 A.insert(x);17 C.insert(x);18 while (getchar() != '\n')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() != '\n')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\n");34 else if (A == B) printf("A equals B\n");35 else36 {37 set
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\n");40 else if (B == s) printf("B is a proper subset of A\n");41 else printf("I'm confused!\n");42 }43 }44 return 0;45 }
View Code

 

转载于:https://www.cnblogs.com/xiaobaibuhei/p/3350159.html

你可能感兴趣的文章
python 訪问webservice
查看>>
CSDN开源夏令营 百度数据可视化实践 ECharts(4)
查看>>
SVN 初试
查看>>
安装edX DevStack
查看>>
避开Unity的坑
查看>>
微软Windows Phone今日正式面向中国市场发布
查看>>
bzoj1112 [POI2008]砖块Klo
查看>>
235D Graph Game
查看>>
csu 1984: LXX的能力值
查看>>
汉编随想(一)
查看>>
开源的Android开发框架-------PowerFramework使用心得(五)网络请求HTTPRequest
查看>>
[转载]kmeans
查看>>
一个不错的架构图:基于SpringCloud的微服务项目
查看>>
成为顶尖自由职业者必备的7个软技能之一:沟通(转)
查看>>
获取合并单元格中值的一个方法POI
查看>>
ORACLE Install (10g r2) FOR Red Hat Enterprise Linux Server release 5.5 (64 bit) (转)
查看>>
入手Invicta 8926 OB潜水自动机械腕表
查看>>
Android UI适配总结(一)寻找最佳匹配资源
查看>>
我是小白之<%%>用法
查看>>
F# 入门(十一):链表与数组
查看>>