最近没状态也没时间,随便写点。
[SCOI2016]美味
题目描述
一家餐厅有 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,表示该位顾客的期望值,偏好值,和可以选择菜品区间。
输出格式:
输出 m 行,每行 1 个整数,ymax ,表示该位顾客选择的最美味的菜的美味值。
输入输出样例
输入样例#1:
1 | 4 4 |
输出样例#1:
1 | 9 |
说明
对于所有测试数据,$1<=n<=2*10^5,0<=ai,bi,xi<10^5,1<=li<=ri<=n(1<=i<=m);1<=m<=10^5$
题解
时间不大够了,口胡一下。
我们枚举$b_i$的每一位,显然我们想让$x_i+a_j$的这一位是相反的。
那就考虑$a_j$的值域范围就好。
由于有区间限制,所以使用可持久化线段树来解决。
END