atcoder#ABC238D. [ABC238D] AND and SUM

[ABC238D] AND and SUM

题目描述

T T 個のテストケースについて、以下の問題を解いてください。

非負整数 a,s a,s が与えられます。以下の条件を両方とも満たす非負整数の組 (x,y) (x,y) は存在しますか?

  • x AND y=a x\ \text{AND}\ y=a
  • x+y=s x+y=s

AND \text{AND} とは 非負整数 n, m n,\ m の bit ごとの論理積 n AND m n\ \text{AND}\ m は、以下のように定義されます。

  • n AND m n\ \text{AND}\ m を二進表記した際の 2k  (k  0) 2^k\ \,\ (k\ \geq\ 0) の位の数は、n, m n,\ m を二進表記した際の 2k 2^k の位の数のうち両方1 1 であれば 1 1 、そうでなければ 0 0 である。

例えば、4 AND 6 = 4 4\ \text{AND}\ 6\ =\ 4 となります(二進表記すると: 100 AND 110 = 100 100\ \text{AND}\ 110\ =\ 100 )。

输入格式

入力は標準入力から与えられる。入力の 1 1 行目は以下の形式である。

T T

その後、 T T 個のテストケースが続く。各テストケースは以下の形式で与えられる。

a a s s

输出格式

T T 行出力せよ。i (1  i  T) i\ (1\ \leq\ i\ \leq\ T) 行目には、i i 番目に与えられるテストケースについて問題文中の条件を両方とも満たす非負整数の組 (x,y) (x,y) が存在するなら Yes を、存在しないなら No を出力せよ。

题目大意

给出两个数 a,ba,b,问能否找到两个数 xxyy 使得 x+y=ax+y=ax and y=bx\ \operatorname{and}\ y=b

多组数据询问。

2
1 8
4 2
Yes
No
4
201408139683277485 381410962404666524
360288799186493714 788806911317182736
18999951915747344 451273909320288229
962424162689761932 1097438793187620758
No
Yes
Yes
No

提示

制約

  • 1  T  105 1\ \leq\ T\ \leq\ 10^5
  • 0  a,s < 260 0\ \leq\ a,s\ \lt\ 2^{60}
  • 入力はすべて整数

Sample Explanation 1

1 1 番目のテストケースにおいては、(x,y)=(3,5) (x,y)=(3,5) などが条件を満たします。 2 2 番目のテストケースにおいては、条件を満たす非負整数の組 (x,y) (x,y) は存在しません。