一家餐廳有 n 道菜,編號 1...n ,大家對第 i 道菜的評價值為 ai(1<=i<=n)。有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 。因此,第 i 位顧客認為第 j 道菜的美味度為 bi xor (aj+xi),xor 表示異或運算。打眼一看,太好了!洛谷試煉場的可持久化trie終於是一道真的可持久化trie了!第 i 位顧客希望從這些菜中挑出他認為最美味的菜,即美味值最大的菜,但由於**等因素,他只能從第 li 道到第 ri 道中選擇。請你幫助他們找出最美味的菜。
等等,怎麼還能加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...