- 集合运算 (vip)
问题描述给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。输入格式第一行为一个整数n,表示集合A中的元素个数。第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。第三行为一个整数m,表示集合B中的元素个数。第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。集合中的所有元素均为int范围内的整数,n、m<=1000。输出格式第一行按从小到大的顺序输出A、B交集中的所有元素。第二行按从小到大的顺序输出A、B并集中的所有元素。第三行按从小到大的顺序输出B在A中的余集中的所有元素。样例输入51 2 3 4 552 4 6 8 10样例输出2 41 2 3 4 5 6 8 101 3 5样例输入41 2 3 435 6 7样例输出1 2 3 4 5 6 71 2 3 4
#include"iostream" using namespace std; int main() { int n,m,x,A=0,B=0,jiao=0,maxx=-1; cin>>n; for(int i=0;i<n;i++) { cin>>x; maxx=max(maxx,x); A+=(1<<x); } cin>>m; for(int i=0;i<m;i++) { cin>>x; maxx=max(maxx,x); B+=(1<<x); } int rst=A&B; for(int i=0;i<=maxx;i++) if(rst&(1<<i)) cout<<i<<" "; cout<<endl; rst=A|B; for(int i=0;i<=maxx;i++) if(rst&(1<<i)) cout<<i<<" "; cout<<endl; rst=A&B; for(int i=0;i<=maxx;i++) if((rst&(1<<i))==0&&A&(1<<i)) cout<<i<<" "; return 0; }
蓝桥杯 集合运算
最新推荐文章于 2022-03-28 20:40:03 发布