解説
全ての量子ビットを反転させることによって、問題の見通しが良くなります。
すなわち、全ての量子ビットに対して ゲートを作用させると
となります。このとき、 は全てのビットが となるので、 が成り立ちます。 よって、
のように書き換えられます。
この量子状態に対して をするようなオラクルを作用させることによって、この問題を解くことができます。 詳しいオラクルの実装については、QPC004 A5 解説を参照してください。
の場合の量子回路は以下の通りです。

回路の深さは です。
解答例
解答例は以下の通りです。
from qiskit import QuantumCircuit
def solve(n: int) -> QuantumCircuit:
qc = QuantumCircuit(n)
qc.x(range(n))
for i in reversed(range(1, n)):
qc.mcx(list(range(i)), i)
qc.x(0)
return qc