- 集合运算 (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 发布