集訓隊互測2015 最大異或和

2022-05-05 12:18:10 字數 772 閱讀 2748

首先不知道有沒有神仙線段樹分治過的。

首先乙個較為顯然的性質:

\[\mathrm\ = \mathrm\\}

\]這個啟發我們維護差分序列,此時1操作變成了單點異或,2操作變成了單點異或以及區間清空。

但是這道題維護的是線性基,所以要用帶刪除的線性基實現。(具體見【集訓隊作業2018】圍繞著我們的圓環)

此時單點異或顯然可以變成插入再刪除。因為線性基的時間複雜度,此時暴力清空也沒問題。

因為每次操作最多使兩個位置非負,暴力清空時特判空向量,此時可以攤還分析,複雜度正確。

因此複雜度為 \(o(\frac)\)。

這次優化了帶刪除線性基的**(從虞大那裡參考了部分寫法)

#include const int maxn = 2048;

typedef std::bitsetb;

int n, m, q;

b frm[maxn], a[maxn], arr[maxn];

int bse[maxn], isb[maxn];

b read()

void insert(int at) }}

void modify(int at, b v)

void output(const b & x)

b query()

int main() else if (opt == 2) else if (opt == 3) output(query());

} return 0;

}

集訓隊互測2015 Robot

題目描述 題解 維護兩顆線段樹,維護最大值和最小值,因為每次只有單點查詢,所以可以直接在區間插入線段就可以了。注意卡常,不要寫stl,用鍊錶把同類修改串起來就好了。pragma gcc optimize 2 pragma gcc optimize 3 include include include ...

集訓隊互測 2012 Attack

description chnlich非常喜歡玩三國志這款遊戲,並喜歡用一些策略出奇制勝。現在,他要開始征服世界的旅途了。他的敵人有n nn座城市和n nn個太守,n nn個城市可以看作在二維平面上的n nn個點。n nn座城市的標號為0,1 2,n 1 0,1,2,cdots,n 1 0,1,2,...

集訓隊互測2013 城市規劃

求n個點的帶標號連通簡單圖的個數。答案對1004535809取模。n 130000 根據套路,首先我們需要求出n個點的帶標號簡單圖的個數,設為g n 顯然我們有g n 2 n n 1 2 考慮設答案為f n 要怎麼求出?列舉1號點所在的聯通塊的大小,我們可以知道 g n i 1n f i ci 1 ...