题意简述
构造出一个三元组a,b,c使得(a ⊕ b)+(a ⊕ c)+(b ⊕ c) = n,若无解输出-1。
符号 ⊕ 的意思为异或
个人分析
首先要了解异或符号的性质:
1,x⊕0=x
2,x⊕x=x
根据异或符号的性质可以得到一下构造:
a=b=0,c=n/2
c=0,a=b=n/2
通过上述可以发现答案都是偶数
所以若n为奇则无解
AC代码
void solved()
{
int n;
cin >> n;
if(n&1)
cout << -1 << endl;
else
cout << n/2 << ' ' << 0 << ' ' << 0 << endl;
}
题后分析
这道题主要了解符号 ⊕ 的性质并通过题意和样例要清楚这道题的构造
标签:题意,Third,符号,CF1699A,Three,异或,Problem From: https://www.cnblogs.com/200312202218s/p/17357126.html