一家餐廳有 n 道菜,編號 1…n ,大家對第 i 道菜的評價值為 ai(1≤i≤n)。有 m 位顧客,第 i 位顧客的期
望值為 bi,而他的偏好值為 xi 。因此,第 i 位顧客認為第 j 道菜的美味度為 bi xor (aj+xi),xor 表示異或
運算。第 i 位顧客希望從這些菜中挑出他認為最美味的菜,即美味值最大的菜,但由於**等因素,他只能從第
li 道到第 ri 道中選擇。請你幫助他們找出最美味的菜。
第1行,兩個整數,n,m,表示菜品數和顧客數。
第2行,n個整數,a1,a2,…,an,表示每道菜的評價值。
第3至m+2行,每行4個整數,b,x,l,r,表示該位顧客的期望值,偏好值,和可以選擇菜品區間。
1≤n≤2×10^5,0≤ai,bi,xi<10^5,1≤li≤ri≤n(1≤i≤m);1≤m≤10^5
輸出 m 行,每行 1 個整數,ymax ,表示該位顧客選擇的最美味的菜的美味值。
4 4
1 2 3 4
1 4 1 4
2 3 2 3
3 2 3 3
4 1 2 4
9 7
6 真題真的好誒。。。
如果是乙個啥東西xo
rai 應該還是很好做的
直接搭乙個可持久化trie樹就行了
但是,現在是bx
orai
我們按照位來考慮,
如果當前是第
l 位
那麼,如果能夠貪心的匹配上乙個1的話
顯然,那就在乙個範圍內需要存在ai
的值 因此,對於ai
搭值域線段樹
每次查詢區間內是否存在ai
的值 如果存在,本次貪心有效
否則無效
最後就很簡單了
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
#define max 500000
inline
int read()
struct node
t[max<<5];
int tot,rt[max],n=200005;
int b,x,l,r;
int n,m,a[max];
void build(int &now,int l,int r)
void modify(int &now,int ff,int l,int r,int pos)
int query(int a,int b,int l,int r,int al,int ar)
int main()
}
BZOJ4571 SCOI2016 美味 題解
一家餐廳有 n 道菜,編號 1.n 大家對第 i 道菜的評價值為 ai 1 i n 有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 因此,第 i 位顧客認為第 j 道菜的美味度為 bi xor aj xi xor 表示異或運算。第 i 位顧客希望從這些菜中挑出他認為最美味的菜,...
SCOI2016 主席樹 貪心 美味
描述 一家餐廳有 n 道菜,編號 1 n 大家對第 i 道菜的評價值為 ai 1 i n a i 1 i n ai 1 i n 有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 因此,第 i 位顧客認為第 j 道菜的美味度為 bix or a j xi b i xor a j x...
P3293 SCOI2016 美味 主席樹好題
題目描述 一家餐廳有 n 道菜,編號 1 n 大家對第 i 道菜的評價值為 ai 1 i n 有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 因此,第 i 位顧客認為第 j 道菜的美味度為 bi xor aj xi xor 表示異或運算。第 i 位顧客希望從這些菜中挑出他認為最...