zoukankan      html  css  js  c++  java
  • Codeforces Round #647 (Div. 2)B题(暴力模拟)

    地址:http://codeforces.com/contest/1362/problem/B

    题意:

    找出最小k,去^ a[]里的每个值,使得a[]不变(可变顺序)

    解析:

    异或^:同为0,异为1

    数据很小,直接暴力即可

    map来判定是否相同,每次^完毕以后,用map记录出现次数判定一遍即可。

    #include <cstdio>
    #include<map>
    #include<iostream>
    using namespace std;
    typedef long long ll;
    const int maxn=1200;
    int a[maxn];
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            int n;
            cin>>n;
            map<int,int>m1;
            for(int i=1;i<=n;i++)
            {
                cin>>a[i];
                m1[a[i]]++;
            }int ok =0;
            for(int i=1;i<=1024;i++)
            {
                map<int,int>m2;
                for(int j=1;j<=n;j++)
                {
                    int md=a[j]^i;
                    m2[md]++;
                }
                int ok1=0;
                for(int j=1;j<=n;j++)
                {
                    if(m1[a[j]]!=m2[a[j]])
                    {
                        ok1=1;break;
                    }
                }
                if(!ok1)
                {
                    cout<<i<<endl;ok=1;break;
                }
            }
            if(!ok)
                cout<<"-1"<<endl;
        }
    }
  • 相关阅读:
    离线缓存之RNCachingURLProtocol解析
    Element demo解析
    GHUnit+OCMock
    XCTest+XCTool
    day1`4整理
    day4 笔记
    day3
    day1
    day2
    Python学习(二)——Python基础
  • 原文地址:https://www.cnblogs.com/liyexin/p/13051280.html
Copyright © 2011-2022 走看看