[bzoj4571][主席树]美味

2023-10-16 03:38
文章标签 主席 bzoj4571 美味

本文主要是介绍[bzoj4571][主席树]美味,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Description

一家餐厅有 n 道菜,编号 1…n ,大家对第 i 道菜的评价值为 ai(1≤i≤n)。有 m 位顾客,第 i 位顾客的期 望值为
bi,而他的偏好值为 xi 。因此,第 i 位顾客认为第 j 道菜的美味度为 bi XOR (aj+xi),XOR 表示异或 运算。第 i
位顾客希望从这些菜中挑出他认为最美味的菜,即美味值最大的菜,但由于价格等因素,他只能从第 li 道到第 ri
道中选择。请你帮助他们找出最美味的菜。

Input

第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

Output

输出 m 行,每行 1 个整数,ymax ,表示该位顾客选择的最美味的菜的美味值。

Sample Input

4 4

1 2 3 4

1 4 1 4

2 3 2 3

3 2 3 3

4 1 2 4

Sample Output

9

7

6

7

题解

好题啊..
如果没有加的操作就是个裸的01Tire
有加的怎么办..
考虑到01Tire其实也就是一个简单的主席树
ans=xiaj a n s = x i ∗ a j ans a n s 能使得 bixorans b i x o r a n s 最大
从高到低位贪心,设枚举到了第i位
如果第i位是1,于是要求 ans+(1<<i) a n s + ( 1 << i ) ~ ans+(1<<i)+(1<<i)1 a n s + ( 1 << i ) + ( 1 << i ) − 1 这个区间里有数
主席树搞一搞就行了..

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#define MX 100005
using namespace std;
struct trnode{int lc,rc,c;}tr[20*200005];int len,rt[200005];
void add(int &now,int l,int r,int p)
{if(now==0)now=++len;tr[now].c++;if(l==r)return ;int mid=(l+r)/2;if(p<=mid)add(tr[now].lc,l,mid,p);else add(tr[now].rc,mid+1,r,p);
}
void meg(int &x,int y)
{if(x==0){x=y;return ;}if(y==0)return ;tr[x].c+=tr[y].c;meg(tr[x].lc,tr[y].lc);meg(tr[x].rc,tr[y].rc);
}
int findsum(int u,int v,int l,int r,int p)
{if(p<0)return 0;if(tr[u].c-tr[v].c==0)return 0;if(l==r)return tr[u].c-tr[v].c;int mid=(l+r)/2;if(p<=mid)return findsum(tr[u].lc,tr[v].lc,l,mid,p);else return tr[tr[u].lc].c-tr[tr[v].lc].c+findsum(tr[u].rc,tr[v].rc,mid+1,r,p);
}
int n,m,a[210000],b[210000],L[210000],R[210000],bin[25];
int main()
{bin[0]=1;for(int i=1;i<=20;i++)bin[i]=bin[i-1]<<1;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){int x;scanf("%d",&x);add(rt[i],0,MX,x);meg(rt[i],rt[i-1]);}for(int i=1;i<=m;i++)scanf("%d%d%d%d",&a[i],&b[i],&L[i],&R[i]);for(int i=1;i<=m;i++){int ans=0;for(int j=20;j>=0;j--){int col=a[i]&bin[j];int nw=(col!=0?0:bin[j]),nxt=bin[j]-1;int s1=findsum(rt[R[i]],rt[L[i]-1],0,MX,ans+nw+nxt-b[i]),s2=findsum(rt[R[i]],rt[L[i]-1],0,MX,ans+nw-1-b[i]);if(s1-s2)ans+=nw;else ans+=col;}printf("%d\n",a[i]^ans);}return 0;
}

这篇关于[bzoj4571][主席树]美味的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/218756

相关文章

【POJ】2104 K-th Number 静态第K小——主席树

传送门:【POJ】2104 K-th Number 题目分析: 哇咔咔,又get了一个新技能——主席树,初步学习主席树,一次AC,感觉好棒~ 也在此Orz一下发明者主席——fotile96,在叉姐群经常看到主席的身影,不过蒟蒻也只能仰望神犇的背影了,起步迟且天赋不如人,只能慢慢的走下去,希望有一天能看到另一个世界。 主席树的编程方式是函数式编程(可持久化),保证我们可以查询历史

EventBus搭配LifeCycle可能更美味

简要介绍 EventBus:一个用来在组件之间发通知通信的开源库。 LifeCycle:JetPack库中一个能感知生命周期的组件。 Kotlin扩展函数:可以为已经存在的类添加新的方法的黑魔法。 解决的问题 在使用EventBus时,我们每次在需要接受通知的地方,都需要注册和解绑监听函数。类似下面的模板代码: @Overrideprotected void onStart() {s

甘肃五仁月饼:美味中的陇原韵味

在月饼的大家族中,甘肃食家巷五仁月饼以其独特的魅力和浓郁的地方特色,占据着重要的一席之地。甘肃,这片广袤而充满历史底蕴的土地,赋予了五仁月饼别样的风情。甘肃五仁月饼的馅料丰富而实在,那一颗颗饱满的杏仁、核桃仁、花生仁、瓜子仁、芝麻仁,仿佛是大自然的馈赠被精心地包裹在金黄的饼皮之中。杏仁的香脆,为月饼增添了一份清新的口感。核桃仁则带来了醇厚的坚果香气,咬上一口,满满的都是营养与满足。花生仁的香甜,让

618狂欢日,美味产品齐上阵,超值优惠等你享

&nbsp; &nbsp; &nbsp; 这个充满激情与活力的6月,我们带着满满的诚意与惊喜,为广大美食爱好者们开启一场独特的618狂欢之旅。 &nbsp; &nbsp; &nbsp; 当我们提及甘肃,那丰富多样的甘肃传统美食便是不得不说的瑰宝。烤馍,油饼,锅盔、擀面皮、浆水等每一种美食都承载着这片土地的独特韵味。而食家巷则将这些甘肃特产精心汇聚,让更多人有机会领略其魅力。 &nbsp;

spoj3267 D-query 主席树(可持久化线段树)

题目链接 题意:给n个数,m次查询,求[l,r]之间不重复数的个数。 思路:主席树。用一个map记录每个值在当前操作下最新的位置,从前往后插入主席树。对于查询[l,r],窝们在root[ l ]下查询在r之前的不重复数的个数。详见代码: /*********************************************************file name: spoj3267.

嘴尚绝卤味:健康美味,引领卤味新风尚

在快节奏的现代生活中,人们对于美食的追求从未停歇。卤味作为中国传统美食的代表之一,以其独特的口感和丰富的营养,深受广大消费者的喜爱。而在众多卤味品牌中,嘴尚绝卤味凭借其健康、美味的特色,成为了市场上的佼佼者。 嘴尚绝卤味始终坚持健康为先的原则,精选优质食材,严格把控生产流程。在食材的选择上,嘴尚绝卤味注重天然、无污染的原则,采用新鲜、优质的肉类、海鲜和蔬菜等原料,确保每一口卤味都是健康的选择

减调食谱攻略:美味低卡又健康

早餐主要求质,也就是求营养,更确切的说是“均衡的营养,多重的营养元素”确保每天早餐不重样就差不多了。 早餐主食:蛋羹、糖心水煮蛋,皮蛋瘦肉粥、南瓜粥、小米粥,蒸煮玉米、南瓜、芋头、红薯,玉米面饼/馅饼、玉米面粗粮馒头等。 早餐饮:豆浆、甜牛奶、维他奶、原味低脂燕麦奶、玉米汁、绿豆汁、柠檬水、椰子汁等。 中餐主要求“饱”这个饱指的是能给身体带来“能源和体力”的饮食。 中餐菜品参考:

嘴尚绝卤味:健康美味新选择,开启味蕾新旅程!

在这个美食文化繁荣的时代,卤味作为传统小吃界的一颗璀璨明珠,一直深受大众的喜爱。而今天,我要向大家介绍一款不仅美味可口,更注重健康营养的卤味品牌——嘴尚绝卤味。它以其独特的制作工艺和丰富的口感,成为众多卤味爱好者的新宠。 嘴尚绝卤味在选材上严格把关,坚持选用新鲜、优质的食材。无论是肉类、海鲜还是蔬菜,都经过严格的筛选和检测,确保每一口都是安全、健康的。同时,嘴尚绝卤味还注重食材的营养搭配,使

HDU - 6621 K-th Closest Distance——主席树+二分

【题目描述】 HDU - 6621 K-th Closest Distance 【题目分析】 因为看到第 k k k大的要求,刚开始的时候一直都在想怎么运用第 k k k大来解决问题,但是后来看其他人的博客才发现并不需要用第k大,但是主席树维护权值线段树还是需要的,这样可以方便的求出某一区间内数的个数。题目要求的 ∣ q − a i ∣ |q-ai| ∣q−ai∣中第 k k k大的,我们可以

黑龙江救学生截肢女教师增选为省残联副主席-最美女教师-张丽莉-残联副主席

黑龙江救学生截肢女教师增选为省残联副主席|最美女教师|张丽莉|残联副主席   记者16日从黑龙江省残联了解到,黑龙江省残疾人联合会第五届主席团第三次会议于10月16日在哈尔滨召开,大会增选“最美女教师”张丽莉同志为省残联第五届主席团委员、副主席。   黑龙江省残联副理事长肖磊在增选说明中对“全国优秀教师”“全国三八红旗手”“全国五一劳动奖章”“黑龙江省见义勇为英雄”张丽莉同志的先进事迹做了