公式
B - The Honest Woodcutters 解説
by
B - The Honest Woodcutters 解説
by
vwxyz
原案:vwxyz
斧 \(i\) を持っていたのは木こり \(B_i\) であり、木こり \(B_i\) は斧 \(A_{B_i}\) を持っていたと主張しています。
したがって、木こり \(B_i\) が本当のことを言っている条件は \(A_{B_i}=i\) です。
制約から、\(B_1,B_2,\dots,B_N\) に \(1,2,\dots,N\) はちょうど \(1\) 回ずつ登場します。
したがって、各 \(i\) について \(A_{B_i}=i\) を満たしているかどうかを判定すればよいです。
計算量は \(O(N)\) です。
本問題の答えが Yes となるようとき、\(A\) と \(B\) はそれぞれもう一方の逆順列と呼ばれます。
\(A\) と \(B\) が長さ \(N\) の順列であるとき、
\(A\) は \(B\) の逆順列である
\(\Leftrightarrow\) \(B\) は \(A\) の逆順列である
\(\Leftrightarrow\) すべての \(i\) で \(A_{B_i}=i\)
\(\Leftrightarrow\) すべての \(i\) で \(B_{A_i}=i\)
が成り立ちます。
投稿日時:
最終更新:
