Cặp số thân thiện
Xem PDFCho dãy số \(a_1, a_2, \ldots, a_n\). Ta gọi hai vị trí \(i\) và \(j\) (với \(1 \leq i < j \leq n\)) là hai vị trí ``thân thiện'' với nhau khi và chỉ khi tồn tại một dãy số nguyên \((p_1, p_2, \ldots, p_k)\) sao cho \(i = p_1 < p_2 < \ldots < p_k = j\) và \(a_{p_t}\ \&\ a_{p_{t+1}} > 0\) với mọi \(1 \leq t < k\). Ở đây \(\&\) thể hiện phép toán and trên các số nhị phân.
Bạn cần trả lời \(q\) câu hỏi. Trong mỗi câu hỏi, bạn có hai số \(x\), \(y\) và cần cho biết hai vị trí \(x\) và \(y\) trong dãy số có ``thân thiện'' với nhau hay không.
Nhắc lại, phép toán \(\&\) (and) đối với bit được định nghĩa như sau:
- \(0\ \&\ 0 = 0\),
- \(1\ \&\ 0 = 0\),
- \(0\ \&\ 1 = 0\),
- \(1\ \&\ 1 = 1\).
Phép toán \(\&\) đối với các số có nhiều hơn một bit được thực hiện theo từng bit. Ví dụ:
- \(2\ \&\ 3 = 2\) \((10_2\ \&\ 11_2 = 10_2)\),
- \(2\ \&\ 5 = 0\) \((010_2\ \&\ 101_2 = 000_2)\),
- \(5\ \&\ 5 = 5\) \((101_2\ \&\ 101_2 = 101_2)\).
Input
- Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) \((1 \leq n - 1, q \leq 3 \cdot 10^5)\) lần lượt là độ dài của dãy số được cho và số câu hỏi bạn cần trả lời.
- Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) \((0 \leq a_i \leq 10^9)\) thể hiện dãy số được cho.
- Trong \(q\) dòng cuối cùng, mỗi dòng chứa hai số nguyên \(x\) và \(y\) \((1 \leq x < y \leq n)\) thể hiện một câu hỏi.
Output
- Với mỗi câu hỏi, in ra \(\texttt{Yes}\) nếu hai vị trí \(x\) và \(y\) "thân thiện" với nhau, \(\texttt{No}\) nếu ngược lại.
Scoring
- Subtask \(1\) (\(20\) điểm): \(n \leq 300\) và \(q \leq 300\)
- Subtask \(2\) (\(20\) điểm): \(n \leq 3000\) và \(q \leq 3000\)
- Subtask \(3\) (\(16\) điểm): Với mọi \(i\), ta có \(a_i = 2^{k_i}\) và \(k_i \in \mathbb{Z}\).
- Subtask \(4\) (\(44\) điểm): Không có ràng buộc gì thêm.
Example
Test 1
Input
7 1
2 2 7 1 9 9 7
2 5
Output
Yes
Note
Trong ví dụ trên, hai vị trí \(x = 2\) và \(y = 5\) ``thân thiện'' với nhau vì ta có thể chọn \(p_1 = x = 2\), \(p_2 = 3\) và \(p_3 = y = 5\). Khi đó, \(a_{p_1}\ \&\ a_{p_2} = 2\ \&\ 7 = 2\) và \(a_{p_2}\ \&\ a_{p_3} = 7\ \&\ 9 = 1\).
Bình luận