日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模板:线性基

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模板:线性基 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 解析
  • 實現
  • 刪除

所謂線性基,就是線性的基

(逃)

解析

何為線性基?
定義幾何BBB為集合SSS的線性基,當且僅當:

.S任意子集異或和可以得到的結果,用B的子集都也可以得到,且B時所有這樣的集合中元素最少的

線性基的一些重要的性質

1.線性基沒有異或和為 0 的子集。
2.線性基中每個元素的異或方案唯一,也就是說,線性基中不同的異或組合異或出的數都是不一樣的。
3.線性基中每個元素的二進制最高位互不相同。

實現

累了
不想打字了
而且我也說不明白
大概就是利用異或的交換律的性質balabala
利用之前的和自己合體拼出S的所有元素
直接看代碼吧

void solve(){mi[0]=1;for(int i=1;i<=50;i++){mi[i]=mi[i-1]*2;//printf("i=%d mi=%lld\n",i,mi[i]);}for(int o=1;o<=n;o++){ll x=a[o];//printf("o=%d x=%lld\n",o,x);int flag=0;for(int i=50;i>=0;i--){if((x&mi[i])==0) continue;else if(!p[i]){p[i]=x;break;}else{x^=p[i];}}} }

刪除

有一個集合 SSS,要求支持加數和刪除,動態維護線性基。

對于刪除一個數 xxx,分類討論:
如果 xxx 不在線性基內:直接把這個數刪掉即可。
如果這個數在線性基內:設每個元素在嘗試插入線性基時異或的線性基的集合為 PPP,那么如果存在一個線性基外的元素 yyyPPP 集合包含 xxx,說明這兩個元素是等價的,直接把那個元素刪去即可;否則,不僅要刪除 xxx,還要去除其他元素異或 xxx 的影響,設在線性基內且 PPP 集合包含 xxx 的最小元素為 yyy,則令 x⊕yx\oplus yxy 取代 xxx 元素,并另其他在線性基內且 PPP 集合包含 xxx 的元素異或上 yyy

可以離線時,線段樹分治還是很香的。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的模板:线性基的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。