2853. 集合运算

爱丽丝_青贝尔克

楼上代码年久失修,贴一份新的23333
从C转C++的表示STL真是牛批

#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
void print(set<int>& s)
{
    cout<<"{";
    if (s.size()==0)
        cout<<"}"<<endl;
    else
       {
        auto it = s.begin();
        int i=0;
        for (;i<s.size()-1;++it,++i)
            cout<<*it<<",";
        cout<<*it<<"}"<<endl;
       }
}
int main()
{
    int n1,n2,tmp;
    set<int> x,y,a,b,c;
    cin>>n1>>n2;
    int i,j;
    for (i=0;i<n1;++i)
    {
        cin>>tmp;
        x.insert(tmp);
    }
    for (i=0;i<n2;++i)
    {
        cin>>tmp;
        y.insert(tmp);
    }
    set_intersection(x.begin(),x.end(),y.begin(),y.end(),inserter(a,a.end()));
    set_union(x.begin(),x.end(),y.begin(),y.end(),inserter(b,b.end()));
    set_difference(x.begin(),x.end(),y.begin(),y.end(),inserter(c,c.end()));
    print(a);
    print(b);
    print(c);
}
CCXXXI_

说到集合相关的操作就不得不提一下python对此的支持


input()
a, b = set(input().split()), set(input().split())
for op in "&|-":
    s = eval(f'sorted(a{op}b,key=int)')
    print('{' + ','.join(s) + '}')

这里有更多相关内容->官方文档

Li Dao

给大家一种用STL的写法作参考

include

using namespace std;
int T,a,b;
set xx,yy,U,I,D;
void solve()
{
set_intersection(xx.begin(),xx.end(),yy.begin(),yy.end(),inserter(I,I.begin()));
set_union(xx.begin(),xx.end(),yy.begin(),yy.end(),inserter(U,U.begin()));
set_difference(xx.begin(),xx.end(),yy.begin(),yy.end(),inserter(D,D.begin()));
return;
}
void print(set::iterator iter,set::iterator end)
{
cout<<’{‘;
int ff=1;

while(iter!=end)
{
int tmp=(*iter);
if(ff) {ff=0;cout<<tmp;}
else cout<<’,’<<tmp;
++iter;
}
cout<<”}\n”;
}
int main()
{
cin>>a>>b;
xx.clear();yy.clear();
for(int i=1;i<=a;i++)
{
int tmp;
cin>>tmp;
xx.insert(tmp);
}
for(int i=1;i<=b;i++)
{
int tmp;
cin>>tmp;
yy.insert(tmp);
}
solve();
print(I.begin(),I.end());print(U.begin(),U.end());print(D.begin(),D.end());
return 0;
}

10142130260

数据太黑了,两点注意
输入数据是对的,都是按照集合里的互异性给的两组,不用考虑输入时那两个组里的单独的去重。
不过,我要吐槽这道题没有给出最大的元素是有多大,本来一个很好的思路,用一个数组三次遍历就可以完成,最终还是败给了那个最大的数。。。
[em:15]
[em:03]
[em:13]

告白于荆州

这道题和27题一样 要刷分的同学们抓紧时间

你当前正在回复 博客/题目
存在问题!