zoukankan      html  css  js  c++  java
  • UVa 496 Simply Subsets (STL&set_intersection)

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


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

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

    使用方法:

    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;
    }
    
  • 相关阅读:
    Linux 工具命令
    Js的一些工具方法
    使用curl测试网络通信
    python 创建XML
    Nginx 使用Lua脚本
    lua 安装cjson
    3对象和类_动手动脑
    10.5
    10.4动手动脑
    10.2
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3458809.html
Copyright © 2011-2022 走看看