線性基的小證實...

這個... 看到一個大佬的證實,沒看懂,就本身證了一下...spa

定律

對於一個集合 S (可重),設它任意個元素(至少一個)異或後能取到的值的集合爲 T ,那麼 T 中全部元素從 S 中異或獲得機率是相等的class

證實

咱們先將原集合 S 中搞個線性基,那麼此時線性基就至關於一個集合 H ,裏面包含一些 S 中的元素,那麼線性基中就有 |H| 個元素,按照定義, H 能夠表示出 \(2^{|H|}-1\) 種權值(減去的一是線性基中默認的 0 ,能夠理解爲空集)。總結

而後咱們在 S 中取出 H 的補集 G ,那麼這個補集能夠異或出 \(2^{|G|}\) 個值(可重)集合

如今咱們分兩步走:math

第一步

咱們發現全部的 G 集合能異或獲得的值 x 都能在線性基 H 中找到惟一肯定的子集(包括空集)使其異或和與 x 相等

而後咱們據此能夠獲得 \(2^{|G|\) 個 S 的子集,使得其中全部子集異或和爲 0

第二步

首先咱們拿出一個集合 A ,使得 A 的異或和爲 x 且不能拆出任意一個異或和爲 0 的子集

而後咱們在上面獲得的 \(2^{|G|}\) 個異或和爲 0 的集合中選出任意個集合(方案數爲 \(2^{2^{|G|}}\)

最後咱們把這些集合並起來,這裏的合併指的是出現偶數次的元素丟掉,奇數次的保留,最後咱們能夠獲得一個異或和爲 x 的集合



上面的作法看上去貌似是會算重的,但事實上咱們發現每種值被算重的次數都是相等的,這樣全部取值的選擇集合方案數減去算重次數仍是相等的

證實總結: 玄學,背結論就好,否則感性理解...

相關文章
相關標籤/搜索