Yuhao Du Contest 7 - Junk Problem

Rainbow_qwq發表於2024-10-25

(同 [COTS/CETS 2021] 菜 Jelo)

假設有 \(2n\) 位,考慮把每個數分成前 \(n\) 位和後 \(n\) 位。

先構造一個 \(2^n\) 元有乘法、加法的有限域,這個可以透過找一個不可約多項式構造,見 P3923

然後對於 \(x=[0,2^n-1]\),前 \(n\) 位填 \(x\),後 \(n\) 位填 \(x^3\) 在有限域運算下的值,構造出一個 \(2n\) 位的數。

這樣如果兩個 pair \((a,b),(c,d)\) 的 xor 相等,就需要滿足 $a+b=c+d \(,\)a3+b3=c3+d3$。

由於在該 \(2^n\) 有限域下加法等同與 xor,可以推出 \(a^3+b^3=c^3+d^3 \to ab(a+b) = cd(c+d) \to ab=cd\)

由於同時有 \(ab=cd\)\(a+b=c+d\),則 \(\{a,b\}\)\(\{c,d\}\) 都是方程 \(x^2-(a+b)x+ab\) 的解,而這個方程只有至多兩個解,也就說明 \(\{a,b\} = \{c,d\}\)

那麼這樣構造就不會有兩個不同的 pair 的 xor 相同,並且構造了 \(2^n\) 個數。

相關文章