zoukankan      html  css  js  c++  java
  • H

    给出两集合A和B, 找出最小的非负整数x使得A⊕x=B.
    假设A={a1,a2,…,an}, A⊕x={a1⊕x,a2⊕x,…,an⊕x}.⊕代表异或操作
    Input输入的第一行是一个整数T,表示一共有T组测试数据;
    对于每组测试数据,第一行是一个整数n代表集合A和B的大小
    第二行包含n个整数a1,a2,a3,....an,代表集合A的元素。
    第三行包含n个整数b1,b2,b3,....bn,代表集合B的元素。
    (1<=n<=100000,n是奇数,0<=ai<2^30)

    Output如果存在x就输出最小的x,如果不存在就输出-1。Sample Input1
    3
    0 1 3
    1 2 3
    Sample Output

    2

    AC:代码:(不懂得建议搜索一下异或的特性)

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int a[100005],b[100005],c[100005];
    int main()
    {
    	int t;
    	cin>>t;
    	while(t--)
    	{
    		int n;
    		scanf("%d",&n);
    		for(int i = 0;i<n;i++)
    		{
    			scanf("%d",&a[i]);
    		}
    		for(int j = 0;j<n;j++)
    		{
    			scanf("%d",&b[j]);
    		}
    		int ans = 0;
    		for(int i = 0;i<n;i++){
    			ans ^= a[i];
    		}
    		for(int j = 0;j<n;j++){
    			ans ^= b[j];
    		}
    		int falgg = 0;
    		for(int i = 0;i<n;i++){
    			c[i] = a[i]^ans;
    		}
    		sort(c,c+n);
    		sort(b,b+n);
    		for(int i = 0;i<n;i++){
    			if(c[i]!=b[i]){
    				falgg = 1;
    				break;
    			}
    		}
    		if(!falgg){
    			printf("%d
    ",ans);
    		} else {
    			printf("-1
    ");
    		}
    	}
    	return 0;
     } 


  • 相关阅读:
    hadoop 配置
    spark 学习网站和资料
    spark-submit 提交任务及参数说明
    python 浮点运算
    nginx 和 php
    clojure 语法
    编程语言
    spark
    mvn 与 pom.xml
    偏导数与偏微分
  • 原文地址:https://www.cnblogs.com/Nlifea/p/11746019.html
Copyright © 2011-2022 走看看