从今天开始小学期结束,开始研究训练群里几周前发布的任务。
https://vjudge.net/contest/381776#problem/C
这次的题目是研究位运算,xor运算符就是^,明天继续研究位运算的题。

#include <iostream>
using namespace std;
int main()
{
	int N=0,X=0,*a,temp=-1;
	a=new int[N];
	cin>>N>>X;
	for(int i=0;i<N;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<N;i++)
	{
		int b=a[i];
		for(int j=0;j<N;j++)
		{
			if(j!=i&&a[j]==b) {temp=0;}
		}
	}
	for(int i=0;i<N;i++)
	{
		int b=(a[i]&X);
		for(int j=0;j<N;j++)
		{
			if(b==a[j]&&j!=i) {temp=1;}
		}
	}
	if(temp==-1)
	{
	for(int i=0;i<N;i++)
	{
		int b=(a[i]&X);
		for(int j=0;j<N;j++)
		{
			if(j!=i)
			{
				int c=(a[j]&X);
				for(int q=0;q<N;q++)
				{
					if(c==b&&q!=j||c==a[q]&&q!=j) {temp=2;}
				}
			}
		}
	}
	}
	cout<<temp<<endl;
}
                    
                
                
            
        
浙公网安备 33010602011771号