傳送門
題意:n個操作,第k個桶放乙個x,查詢l到r區間的桶任意數的異或最大值。
p哥時不時地會找新女朋友,並把新找的女朋友丟進某個桶裡面。我們用 1 k x 來表示p哥找了乙個顏值為x的女朋友,並且丟進了k號桶裡面
p哥每天晚上需要在特定的桶裡面找一些女朋友觀賞。我們用 2 l r 來表示p哥在l號桶到r號桶之間找女朋友。p哥希望觀賞的女朋友顏值異或和盡可能大。
#include#include#include#include#include#define ll long long
using namespace std;
const int maxn=5e4+10;
struct node
void ins(int x)
else
x^=d[i];
}} }
}a[maxn<<2];
node merge(node u,node v)
return u;
}node query(int l,int r,int l,int r,int rt)
node tt;
int mid=(l+r)/2;
if(l<=mid)
tt=merge(tt,query(l,r,l,mid,rt<<1));
if(r>mid)
tt=merge(tt,query(l,r,mid+1,r,rt<<1|1));
return tt;
}void update(int u,int l,int r,int rt,int x)
int mid=(l+r)/2;
if(u<=mid)
update(u,l,mid,rt<<1,x);
else
update(u,mid+1,r,rt<<1|1,x);
a[rt]=merge(a[rt<<1],a[rt<<1|1]);
}int qmax(node tt)
return ans;
}int main()
else
}return 0;
}
洛谷 P4839 P哥的桶 (線段樹維護線性基)
p哥的桶 題意 給你 m 個位置和 n 次操作,操作有兩種型別 操作一 表示在區間 l r 中選擇任意個位置,使這些位置中的數的異或和最大。操作二 在位置 k 加入乙個數x 每個位置可以有多個數 思路 單點修改 區間查詢首先考慮線段樹 異或和最大考慮線性基。我們可以用線段樹的每個節點表示這個區間的線...
洛谷 P哥的桶(線段樹 線性基)
p哥在ioi取得了金牌,現在他開始找女朋友了!p哥現在有nn個桶,他們排成了一排,這些桶可以裝下任意多個女朋友。每個女朋友有乙個固定的顏值 p哥時不時地會找新女朋友,並把新找的女朋友丟進某個桶裡面。我們用1 k x1kx來表示p哥找了乙個顏值為xx的女朋友,並且丟進了kk號桶裡面 p哥每天晚上需要在...
洛谷 P1047 校門外的樹 線段樹版
第一次脫離模板寫線段樹題目 洛谷的線段樹模板題太 了 言歸正傳,這是乙個未完成版的線段樹,因為一直到最後都沒有發現為什麼第一組資料會wa.後來苦心研究之後,發現線段樹處理0的時候會有問題,於是想了兩個解決辦法應對該情況。這個題目唯一的坑點在於從0開始,意思是輸入的500實質上有501棵樹,而線段樹的...