BZOJ4571 SCOI2016 美味 題解

2022-05-16 14:00:20 字數 1246 閱讀 9757

一家餐廳有 n 道菜,編號 1...n ,大家對第 i 道菜的評價值為 ai(1<=i<=n)。有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 。因此,第 i 位顧客認為第 j 道菜的美味度為 bi xor (aj+xi),xor 表示異或運算。

第 i 位顧客希望從這些菜中挑出他認為最美味的菜,即美味值最大的菜,但由於**等因素,他只能從第 li 道到第 ri 道中選擇。請你幫助他們找出最美味的菜。

打眼一看,太好了!洛谷試煉場的可持久化trie終於是一道真的可持久化trie了!

等等,怎麼還能加x的,emmm……

於是將自己的板子推倒重來,我們不用以前(我寫的)板子造trie,而是使用值域來造可持久化trie樹。

(但其實建法都差不多……開始懷疑以前的做法是否能夠搬過來。)

這樣就變成了對於b的每一位(當然是貪心地從高到低),我們查詢符合條件的值域-x後是否存在這一位異或後為1即可。

(反正我理解的時候都是看的**理解的,感覺說起原理來很繞,相信大家一定能看**理解的233)

#include#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;const

int n=2e5+5

;const

int mx=1e5-1

;inline

intread()

while(isdigit(ch))x=(x<<3)+(x<<1)+(ch^48),ch=getchar();

return w?-x:x;

}struct

trietr[n*20

];int

tot,rt[n],pool,n,m;

void insert(int y,int &x,int l,int r,int

k)int query(int nl,int nr,int l,int r,int l,int

r)int ask(int l,int r,int k,int

x)

return ans^k;

}int

main()

for(int i=1;i<=m;i++)

return0;

}

+

BZOJ4571 美味(主席樹)

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

BZOJ 1079 SCOI2008 著色方案

題目 分析 一看就覺得是dp或者直接排列組合公式或者容斥?我就只想到dp的,我們用dp i j 表示前i種顏色,排列出有j對相鄰一樣顏色的方案數。當出現乙個新的顏色時,我們把這個顏色插板法插進去,我們要列舉插入的方式,可能插到相鄰顏色一樣的中間,或者不是,然後進行狀態轉移.具體看 include i...

BZOJ1066 SCOI2007蜥蜴 最大流

挺顯然的最大流,源向所有有蜥蜴的點連inf邊,所有點拆成入點和出點,入店向出點連流量為高度的邊,限制流量,所有可以一步跳出去的點向匯連inf邊,跑最大流就行了。include include include define inf 99999999 define maxn 1005 using nam...