luogu#P10835. 『FLA - I』冲云霄
『FLA - I』冲云霄
题目背景
English statement. You must submit your code at the Chinese version of the statement.
住在呼和浩特的小 R 很久以前就学会了异或。异或使用符号 表示,在 C++ 中可用符号 ^
表示。非负整数 和 的异或是指对它们二进制表示中的每一位进行如下运算得到的结果:
- 若 和 的第 个二进制位相同,结果的第 个二进制位为 ;
- 若 和 的第 个二进制位不同,结果的第 个二进制位为 。
使用 表示十进制数 , 表示二进制数 ,因为 ,,所以 $(12)_{10} \oplus (10)_{10}=(1100)_2 \oplus (1010)_2=(0110)_2=(6)_{10}$。
住在银川的小 F 想用这道题难倒小 R 但失败了,现在小 F 又想用这道题为难你,不能让他的阴谋得逞!
题目描述
给定整数 和 ,判断是否存在满足下列条件的数列 。本题中数列元素的下标从 开始。
-
数列 的长度为 ,数列 的每一项都为正整数。
-
,即数列 的所有项异或得到的结果等于 。
-
数列 中所有元素的值都相同。
输入格式
本题有多组测试数据。
第一行输入一个正整数 ,表示测试数据组数。
对于每组测试数据,输入一行两个整数 。
输出格式
对于每组测试数据,输出一行一个字符串。如果存在满足条件的数列 ,输出 Yes
;否则输出 No
。
4
3 3
2 5
0 3
1 4
Yes
Yes
No
No
提示
「样例解释 #1」
对于第一组测试数据,数列 可以是 ,此时 $a_1 \oplus a_2 \oplus a_3 = 3 \oplus 3 \oplus 3 = 3$。
对于第二组测试数据,数列 可以是 ,此时 $a_1 \oplus a_2 \oplus a_3 \oplus a_4 \oplus a_5 = 2 \oplus 2 \oplus 2 \oplus 2 \oplus 2 = 2$。
对于第三组和第四组测试数据,可以证明不存在满足条件的数列。
「数据范围」
测试点编号 | |||
---|---|---|---|
对于所有测试数据,,,。