[Swust OJ 632]--集合运算(set容器)
题目链接:http://acm.swust.edu.cn/problem/632/
A∪B={x|x∈A∨x∈B}
A∩B={x|x∈A∧x∈B}
A – B={x|x∈A∧x不属于 B}
SA ={x|x∈(A∪B)∧x 不属于A}
SB ={x|x∈(A∪B)∧x 不属于B}
第一行输入集合A的元素个数M1(M1>=0),接下来一行输入集合A的元素
第三行输入集合B的元素个数M2(M2>=0),最后一行输入集合B的元素
前2行分别输出集合A、B,接下5行来分别输出集合A、B的并(A∪B)、交(A∩B)、差(A – B)、补。
4
1 3 2 1
0
|
A={1, 2, 3}
B={}
AuB={1, 2, 3}
AnB={}
A-B={1, 2, 3}
SA={}
SB={1, 2, 3}
|
#include <iostream>
#include <set>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std; set<int>a, b, c, d, e, f, g;
int n, m, x; void init(){
a.clear(); b.clear();
c.clear(); d.clear();
e.clear(); f.clear(); g.clear();
} void Order(string str, set<int>s){
cout << str << "={";
for (set<int>::iterator it = s.begin(); it != s.end(); it++){
if (it == s.begin()) cout << *it;
else cout << ", " << *it;
}
cout << "}" << endl;
}
int main(){
while (cin >> n){
init();
for (int i = ; i < n; i++){
cin >> x;
a.insert(x);
}
cin >> m;
for (int i = ; i < m; i++){
cin >> x;
b.insert(x);
}
set_union(a.begin(), a.end(), b.begin(), b.end(), insert_iterator<set<int> >(c, c.begin()));//并
set_intersection(a.begin(), a.end(), b.begin(), b.end(), insert_iterator<set<int> >(d, d.begin()));//交
set_difference(a.begin(), a.end(), b.begin(), b.end(), insert_iterator<set<int> >(e, e.begin()));//差
set_difference(c.begin(), c.end(), a.begin(), a.end(), insert_iterator<set<int> >(f, f.begin()));
set_difference(c.begin(), c.end(), b.begin(), b.end(), insert_iterator<set<int> >(g, g.begin()));
Order("A", a);
Order("B", b);
Order("AuB", c);
Order("AnB", d);
Order("A-B", e);
Order("SA", f);
Order("SB", g);
}
return ;
}
[Swust OJ 632]--集合运算(set容器)的更多相关文章
- [Swust OJ 403]--集合删数
题目链接:http://acm.swust.edu.cn/problem/403/ Time limit(ms): 5000 Memory limit(kb): 65535 Description ...
- STL中的set集合容器进行集合运算:并、交、差实例
集合容器的集合运算:并.交.差: #include "stdafx.h" #include <iostream> #include <set> #inclu ...
- 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】
一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...
- 详解SQL集合运算
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...
- SQL集合运算参考及案例(一):列值分组累计求和
概述 目前企业应用系统使用的大多数据库都是关系型数据库,关系数据库依赖的理论就是针对集合运算的关系代数.关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式.不过我们在工作中发现,很多人 ...
- Oracle学习之集合运算
一.集合运算操作符 UNION:(并集)返回两个集合去掉重复值的所有的记录 UNION ALL:(并集)返回两个集合去掉重复值的所有的记录 INTERSECT:(交集)返回两个集合的所有记录,重复 ...
- Oracle学习(七):集合运算
1.知识点:能够对比以下的录屏进行阅读 SQL> -- 查询10和20号部门的员工的3种方法 SQL> --1. select * from emp where deptno in (10 ...
- sql的集合运算
表的加减法 union:使用union 对表进行假发(并集)运算, union等集合运算符通常都会去除重复记录. select shohin_id, shohin_mei from shohin un ...
- [Swust OJ 404]--最小代价树(动态规划)
题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535 Des ...
随机推荐
- spoj 7258 Lexicographical Substring Search (后缀自动机)
spoj 7258 Lexicographical Substring Search (后缀自动机) 题意:给出一个字符串,长度为90000.询问q次,每次回答一个k,求字典序第k小的子串. 解题思路 ...
- CVTE 嵌入式软件工程师 二面
昨天晚上收到了二面的通知,激动啊-第二天提前20分钟到达指定地点,然后一起做大巴去到CVTE总部,发现笔试刷掉的人好像并不是很多.我们一下车被带到了公司的电影院,听演唱会.呵呵,挺有意思的,有一个漂亮 ...
- javascript原生ajax;
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Objective-C时间戳转换的转换和时间
什么是时间戳? 时间戳(timestamp),一般是一个字符序列.唯一地标识某一刻的时间.数字时间戳技术是数字签名技术一种变种的应用. 思考:简单来讲就是依据文件hash加密后生成的摘要和时间生成的时 ...
- TabHost 简单用法
package com.google.tabhost; import android.app.TabActivity; import android.os.Bundle; import an ...
- web前端学习之路
test 随着自己对于web前端知识了解的越多,越来越发现自己真的好菜 一脸茫然阶段 两年前大学接触网页设计,那时对于网页设计一窍不通,只是看了一本自己大学编的一本入门教材,我甚至不知道那些网页设计的 ...
- ViEmu for VS2013-3.2.1 破解(转)
ViEmuVS2013-3.2.1 破解 VS升级到2013后,作为一个Vimer,自然需要更新最新的ViEmu插件,因为现在离了Vim,写代码已经寸步难行了. ViEmu 3.2.1的破解其实和 ...
- Java日期计算之Joda-Time
http://rensanning.iteye.com/blog/1546652 Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time.可以利用它把JDK D ...
- Qt QToolTip 控件背景的 QSS 设置方法(摘抄)
Qt/C++/CSS: QTooltip stylesheet background colour Hi there, I've recently come across a problem deve ...
- 启动tomcat的时候,服务器暂停到装载mysql驱动文件的原因
1.使用spring+mybatis,由于mybatis的配置文件中jdbc类型的错误使得,tomcat无法正常启动,在编写mybatis一定确保jdbc类型,java类型正确,jdbc类型要大写! ...