0
点赞
收藏
分享

微信扫一扫

codeforces 770 div2 B. Fortune Telling

星巢文化 2022-02-10 阅读 132

在这里插入图片描述
在这里插入图片描述

题意:给定初值 d d d ,以及数组,对于数组的每个数,要么加法要么异或,问 d d d能否变成给定的数 y y y,如果能则Alice赢否则Bob赢
分析: 加法和异或运算在二进制下对于数字最后一位效果是一样的,因此对于一种给定的操作方法,最后的结果不随加法次数或异或次数多少改变而改变,因此操作后奇偶性是确定的,如果能与y奇偶性相同则A赢,否则B赢

#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N = 1e5 + 7;
int a[N];
void solve()
{
	int n , s , t;
	cin >> n >> s >> t; 
	for (int i = 1; i <= n; ++ i)
	{
		cin >> a[i];
		s += a[i];
	}
	
	if (s % 2 == t % 2) cout << "Alice" << endl;
	else cout << "Bob" << endl;
	
}
signed main()
{
	int T;
	cin >> T;
	while(T --)
	{
		solve();
	}
	
	return 0;
}
举报

相关推荐

0 条评论