P15664 [ICPC 2025 Jakarta R] AND and/or OR
题目描述
假设你有一个非负整数 $x$。你可以进行两种类型的操作:
- $x := x \textrm{ AND } 2x$;
- $x := x \textrm{ OR } 2x$;
其中 $\textrm{AND}$ 和 $\textrm{OR}$ 分别是按位与和按位或运算。
给定三个整数 $N$、$A$ 和 $B$。
如果 $x$ 的初始值为 $N$,是否存在一个操作序列,该序列**恰好**包含 $A$ 次类型 1 的操作和**恰好** $B$ 次类型 2 的操作,使得 $x$ 的最终值为 $N \cdot 2^k$,其中 $k$ 是一个非负整数?
输入格式
输入包含三个整数 $N$、$A$ 和 $B$($1 \leq N \leq 10^{18}$,$0 \leq A, B \leq 10^{18}$,$A + B \geq 1$)。
输出格式
如果可以使 $x$ 的最终值等于 $N \cdot 2^k$(其中 $k$ 为非负整数),则输出一行 $\texttt{YES}$,否则输出 $\texttt{NO}$。
说明/提示
**样例 1 解释:** 初始时 $x = 14$。你可以进行以下操作序列:
- 进行一次类型 1 操作。$x = 14 \textrm{ AND } 28 = 12$。
- 进行一次类型 1 操作。$x = 12 \textrm{ AND } 24 = 8$。
- 进行一次类型 2 操作。$x = 8 \textrm{ OR } 16 = 24$。
- 进行一次类型 2 操作。$x = 24 \textrm{ OR } 48 = 56$。
$x$ 的最终值为 $56 = 14 \cdot 2^2$。
翻译由 DeepSeek V3.2 完成