P3293 SCOI2016 貪心 主席樹

2021-10-10 10:43:10 字數 1394 閱讀 3789

題意

傳送門 p3293 [scoi2016]美味

題解求某個數字 x

xx 與集合中任一數字異或的最大值,考慮從高位向低位貪心的選擇與 x

xx 在這一位的異或值對應的數。假設當前已處理好比第 i

ii 位更高的數字,此時區間左界為 lblb

lb,假如 x

xx 的第 i

ii 位為 1

11,那麼選擇的數字應該在區間 [lb

+(

1<

,lb+

(1

<

<(i

+1))

)\big[lb+(1<[l

b+(1

<

,lb+

(1<

<(i

+1))

) 中;若為 0

00,則選擇的數字應該在區間 [lb

,lb+

(1

<

)\big[lb, lb+(1<[l

b,lb

+(1<

) 中。確定 [l,

r]

[l,r]

[l,r

] 道菜中值域在目標區間是否存在數字,使用主席樹即可。時間複雜度 o(n

logn

+mlo

g2n)

o(nlogn +mlog^2n)

o(nlog

n+ml

og2n

)。

#include

#include

#include

#include

using

namespace std;

#define maxn 200005

#define maxt 4000005

#define maxl 20

int n, m, a[maxn]

;int ns, rt[maxn]

, cl[maxt]

, cr[maxt]

, sum[maxt]

;void

insert

(int

&cur,

int pre,

int x,

int l,

int r)

}int

query

(int u,

int v,

int a,

int b,

int l,

int r)

intmain()

while

(m--

)else

}printf

("%d\n"

, res);}

return0;

}

洛谷P3293 SCOI2016 美味

一家餐廳有 n 道菜,編號 1.n 大家對第 i 道菜的評價值為 ai 1 i n 有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 因此,第 i 位顧客認為第 j 道菜的美味度為 bi xor aj xi xor 表示異或運算。第 i 位顧客希望從這些菜中挑出他認為最美味的菜,...

P3293 SCOI2016 美味 主席樹好題

題目描述 一家餐廳有 n 道菜,編號 1 n 大家對第 i 道菜的評價值為 ai 1 i n 有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 因此,第 i 位顧客認為第 j 道菜的美味度為 bi xor aj xi xor 表示異或運算。第 i 位顧客希望從這些菜中挑出他認為最...

洛谷P3293 SCOI2016 美味(主席樹)

傳送門 據說這題做法叫做可持久化trie樹?然而我並不會 首先考慮一下貪心,從高位到低位列舉,如果能選1肯定比選0優 假設已經處理到了 b 的第 i 位,為1 為0的話同理就不說了 那麼只有當 a j x 的第 i 位為0時才能讓答案的第 i 位為 1 考慮把 x 的影響去掉。如果當前的答案是 an...