首页 > 其他 > 详细

B - Johnny and His Hobbies

时间:2020-07-03 14:20:04      阅读:67      评论:0      收藏:0      [点我收藏+]

B - Johnny and His Hobbies

这道题题意:就是给定一个集合,然后找到1个最小的数K,使得集合中的各元素与K异或得到的集合与原集合等价。

题解:这道题暴力就可以了,先异或,在比较。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1050;
int ah[maxn];
int bh[maxn];
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n;
        int flag = 1;
        int k;
        scanf("%d", &n);
        for (int i = 1; i <= n;i++){
            scanf("%d", &ah[i]);
        }
        sort(ah + 1, ah + 1 + n);
        for (int i = 1; i <= 1024;i++){
            flag = 1;
            for (int j = 1; j <= n;j++){
                bh[j] = ah[j] ^ i;
            }
            sort(bh + 1, bh + 1 + n);
            for (int j = 1; j <= n;j++){
                if(bh[j]!=ah[j]){
                    flag = 0;
                    break;
                }
            }
           if(flag){
               k = i;
               break;
           }
               
        }
        if(flag)
            printf("%d\n", k);
        else
            printf("-1\n");
    }
}

 

B - Johnny and His Hobbies

原文:https://www.cnblogs.com/kitalekita/p/13229824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!