http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=437

先介绍<algorithm>头文件中与集合运算有关的4个函数:

set_union
Union of two sorted ranges 
(并集:A∪B)
set_intersection
Intersection of two sorted ranges 
(交集:A∩B)
set_difference
Difference of two sorted ranges 
(差集:A-B)
set_symmetric_difference
Symmetric difference of two sorted ranges 
(对称差集:A△B)

很明显,这里要判断两个集合的关系,使用交集来判断就行了。

使用方法:

set_intersection(a, a + n, b, b + m, v.begin());

这里v是动态数组,用于保存交运算结果。(其他函数的使用方法均与之类似)

该函数的返回值减去v.begin()就是集合的大小。

完整代码:

/*0.016s*/

#include<bits/stdc++.h>
using namespace std; int a[100], b[100];
vector<int> v(100);///初始化空间是必须的 int main()
{
int n, m, cnt, diff;
char ch;
while (~scanf("%d%c", &a[0], &ch))
{
for (n = 1; ch != 10; ++n)
scanf("%d%c", &a[n], &ch);
cnt = scanf("%d%c", &b[0], &ch);
for (m = 1; ch != 10 && cnt == 2; ++m)
cnt = scanf("%d%c", &b[m], &ch);
sort(a, a + n);
sort(b, b + m);
diff = set_intersection(a, a + n, b, b + m, v.begin()) - v.begin();
if (diff == min(n, m))
{
if (n < m) puts("A is a proper subset of B");
else if (n > m) puts("B is a proper subset of A");
else puts("A equals B");
}
else if (diff) puts("I'm confused!");
else puts("A and B are disjoint");
}
return 0;
}

UVa 496 Simply Subsets (STL&set_intersection)的更多相关文章

  1. UVa 496 - Simply Subsets

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

  2. UVa第五章STL应用 习题((解题报告))具体!

    例题5--9 数据库 Database UVa 1592 #include<iostream> #include<stdio.h> #include<string.h&g ...

  3. UVa 1593 (水题 STL) Alignment of Code

    话说STL的I/O流用的还真不多,就着这道题熟练一下. 用了两个新函数: cout << std::setw(width[j]);    这个是设置输出宽度的,但是默认是在右侧补充空格 所 ...

  4. UVA 246 - 10-20-30 (模拟+STL)

    UVA 246 - 10-20-30 题目链接 题意:给52张的扑克堆,先从左往右发7张牌,之后连续不断从左往右发7张牌,假设有牌堆形成了下面3种情况(按顺序推断): 1.头两张+尾一张和为10或20 ...

  5. Uva 11988 Broken Keyboard STL+链表

    两种方法,直接上代码 STL标准模板库 #include <iostream> #include <list> #include <algorithm> #incl ...

  6. uva 1592 Database (STL)

    题意: 给出n行m列共n*m个字符串,问有没有在不同行r1,r2,有不同列c1,c2相同.即(r1,c1) = (r2,c1);(r1,c2) = (r2,c2); 如 2 3 123,456,789 ...

  7. UVa 10391 (水题 STL) Compound Words

    今天下午略感无聊啊,切点水题打发打发时间,=_=|| 把所有字符串插入到一个set中去,然后对于每个字符串S,枚举所有可能的拆分组合S = A + B,看看A和B是否都在set中,是的话说明S就是一个 ...

  8. UVa 1596 Bug Hunt (STL栈)

    题意:给定两种操作,一种是定义一个数组,另一种是赋值,让你找出哪一步时出错了,出错只有两种,一种是数组越界,另一种是访问未定义变量. 析:当初看到这个题时,感觉好麻烦啊,然后就放过去了,而现在要重新回 ...

  9. UVA 110020 Efficient Solutions (STL)

    把一个人看出一个二维的点,优势的点就是就原点为左下角,这个点为右上角的矩形,包含除了右上角以外边界,其他任意地方不存在点. 那么所有有优势的点将会形成一条下凹的曲线. 因为可能有重点,用multise ...

随机推荐

  1. Linux查看进程内存占用及内存使用情况

    LINUX进程内存占用查看方法(1)top可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:$ top ...

  2. Oauth认证简介

    Oauth是什么: 1.Oauth是一种安全认证的协议: 2.Oauth为用户资源的授权提供了一个安全的.开放而又简易的标准: 3.Oauth的授权不会使第三方触及到用户的账号信息(用户名和密码). ...

  3. hibernate加载实体映射文件 及映射文件auto-import

    第一种方法: 在hibernate.cfg.xml中<mapping resource="包名/Xxx.hbm.xml"/>包名为路径形式( x/x/x这种形式) 第二 ...

  4. win7下.NET 2.0未在web服务器上注册的问题(转)

    转自:http://blog.sina.com.cn/s/blog_6d15b547010192hx.html 电脑装了win7操作系统,装上vs2008后运行dotnetnuke项目后出现" ...

  5. javaScript 的option触发事件

    先说jquery的option触发事件,很方便 $("option:selected")//这样就能直接触发选择的option了 在JavaScript中就显得比较麻烦,其实< ...

  6. 定时器内部的this

    今天写了个例子遇见的: timer1=setTimeout(function(){ $(this).next().css("display","none") } ...

  7. Joomla插件汉化小程序

    这两天在搞joomla插件,在看peter的视频,在此谢过他了.看到它汉化插件那个视频.反正闲着无聊,就写了一个Java小程序,方便使用joomla的人汉化插件.这个程序的方法很简单,你只要先运行ou ...

  8. dede操作成功信息提示修改

    函数修改 include/common.func.php 文件 function ShowMsg()函数

  9. jquery 判断页面滚动到底部

    $(document).scrollTop() 获取垂直滚动的距离 即当前滚动的地方的窗口顶端到整个页面顶端的距离$(document).scrollLeft() 这是获取水平滚动条的距离获取顶端 只 ...

  10. cygwin编译ffmpeg移植到android平台问题集锦

    编译环境: windows xp Cygwin 1.1.3.1 NDK r9 1.提示各种command not found 比如 ./config.sh: line 6: $'--arch=arm\ ...