三合一
你有一個長度為 \(n\) 的二元字串 \(a\)
在一次操作中,你需要選取一個 \(i\) , 將 \(a_i, a_{i+1}, a_{i+2}\) 合併成為 \(a_i\oplus a_{i+1}\oplus a_{i+2}\) ,其中 \(\oplus\) 代表 xor 運算 ( https://en.wikipedia.org/wiki/Bitwise_operation#XOR )
進行完操作後陣列的長度會減少 \(2\) , \(a_i\) 的值會更新為 \(a_i\oplus a_{i+1}\oplus a_{i+2}\) , 並刪除 \(a_{i+1}\) 和 \(a_{i+2}\) ,其餘由後面的值向前遞補
題目保證經過數次操作後,陣列長度會剩下 \(1\)
請問是否能讓最後陣列中的值為 \(0\) ?
Input
第一行包含一個整數 \(n\) , \(n\) 代表陣列的長度。
\(3\le n\le 3\cdot 10^5, n\) 為奇數
第二行包含一個二元字串 \(a\) 。
Output
輸出一行,如果最後陣列的值有辦法是 \(0\) 則輸出 \(YES\) (需大寫)
反之則輸出 \(NO\)
Constraints
第 \(1\) 組測資, \(n\le 19\)。\((40\text{%})\)
第 \(2\) 組測資, 沒有其他限制。\((60\text{%})\)
Sample Input 1
3
110
Sample Output 1
YES
Sample Input 2
11
11010101101
Sample Output 2
NO
评论