经典问题,按位贪心,每次需要知道的是”在这一位之前的位都以确定的情况下,能否找到这一位是0/1的数”,这就是在询问[L,R]内某个值域区间是否有数,主席树即可。

  1. #include<cstdio>
  2. #include<algorithm>
  3. #define rep(i,l,r) for (int i=(l); i<=(r); i++)
  4. using namespace std;
  5.  
  6. const int N=,M=;
  7. int n,m,b,x,l,r,nd,rt[N],a[N],ls[N*],rs[N*],v[N*];
  8.  
  9. void ins(int &x,int y,int L,int R,int pos){
  10. x=++nd; v[x]=v[y]+; ls[x]=ls[y]; rs[x]=rs[y];
  11. if (L==R) return;
  12. int mid=(L+R)>>;
  13. if (pos<=mid) ins(ls[x],ls[y],L,mid,pos);
  14. else ins(rs[x],rs[y],mid+,R,pos);
  15. }
  16.  
  17. int que(int x,int y,int L,int R,int l,int r){
  18. if (L==l && r==R) return v[y]-v[x];
  19. int mid=(L+R)>>;
  20. if (r<=mid) return que(ls[x],ls[y],L,mid,l,r);
  21. else if (l>mid) return que(rs[x],rs[y],mid+,R,l,r);
  22. else return que(ls[x],ls[y],L,mid,l,mid)+que(rs[x],rs[y],mid+,R,mid+,r);
  23. }
  24.  
  25. int main(){
  26. freopen("bzoj4571.in","r",stdin);
  27. freopen("bzoj4571.out","w",stdout);
  28. scanf("%d%d",&n,&m);
  29. rep(i,,n) scanf("%d",&a[i]),ins(rt[i],rt[i-],,M,a[i]);
  30. rep(i,,m){
  31. scanf("%d%d%d%d",&b,&x,&l,&r); int a=;
  32. for (int j=; ~j; j--){
  33. if (!(b&(<<j))) a|=<<j;
  34. int L=max(a-x,),R=(a|((<<j)-))-x;
  35. if (R< || !que(rt[l-],rt[r],,M,L,R)) a^=<<j;
  36. }
  37. printf("%d\n",a^b);
  38. }
  39. return ;
  40. }

[BZOJ4571][SCOI2016]美味(贪心+主席树)的更多相关文章

  1. BZOJ4571: [Scoi2016]美味【主席树】【贪心】

    Description 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期 望值为 bi,而他的偏好值为 xi .因此,第 ...

  2. 2018.10.14 bzoj4571: [Scoi2016]美味(主席树)

    传送门 自认为是一道思想很妙的题. 直接分析问题. 如果没有xxx的干扰直接上可持久化01trie01trie01trie走人. 但现在有了xxx这个偏移量. 相当于把整个01trie01trie01 ...

  3. BZOJ4571 [Scoi2016]美味 【主席树】

    题目 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期 望值为 bi,而他的偏好值为 xi .因此,第 i 位顾客认为第 ...

  4. 【BZOJ4571】美味(主席树)

    [BZOJ4571]美味(主席树) 题面 Description 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期 望值为 ...

  5. 【BZOJ4571】[SCOI2016] 美味(主席树)

    点此看题面 大致题意: 给你一个序列\(a\),然后每次询问\(max_{i=l}^r(a_i+x)\ xor\ b\). 大致思路 首先,我们要知道一个简单的性质:位运算时位与位之间是互不影响的. ...

  6. 洛谷P3293 [SCOI2016]美味(主席树)

    传送门 据说这题做法叫做可持久化trie树?(然而我并不会) 首先考虑一下贪心,从高位到低位枚举,如果能选1肯定比选0优 假设已经处理到了$b$的第$i$位,为1(为0的话同理就不说了) 那么只有当$ ...

  7. 【bzoj4571&&SCOI2016美味】

    4571: [Scoi2016]美味 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 656  Solved: 350[Submit][Status][ ...

  8. bzoj4571: [Scoi2016]美味

    4571: [Scoi2016]美味 Time Limit: 30 Sec Memory Limit: 256 MB Submit: 275 Solved: 141 [Submit][Status][ ...

  9. P3293-[SCOI2016]美味【主席树】

    正题 题目链接:https://www.luogu.com.cn/problem/P3293 题目大意 给出一个长度为\(n\)的序列,\(m\)次询问给出\(b,x,l,r\)表示询问在\([l,r ...

随机推荐

  1. VUE和ES6资源收集

    MDN https://developer.mozilla.org/zh-CN/docs/Web/JavaScript https://developer.mozilla.org/en/docs/We ...

  2. Struts2笔记3--获取ServletAPI和OGNL与值栈

    获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.getConte ...

  3. MySQL数据记录大小写敏感问题【转】

    MySQL大小写敏感 字符串大小写敏感和Mysql的数据库的名字.表名字.字段名字.还有字段值有关. 1.和数据库名字.表名字.存储过程和触发器有关 为0时:表示区分大小写,使用CREATE TABL ...

  4. WCF 数据契约(DataContract)

    服务契约定义了远程访问对象和可供调用的方法,数据契约则是服务端和客户端之间要传送的自定义数据类型. 一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送,如下所 ...

  5. 利用github pages五分钟建好个人网站+个人博客

    笔者自己在建个人网站/个人博客的时候其实遇到了不少麻烦,但是都一一解决了,这里教给大家最简单的方式. 首先你需要一个GitHub账号,访问https://github.com创建新账号即可. 然后访问 ...

  6. mysql高可用架构 -> MHA配置VIP漂移-05

    VIP漂移的两种方式 1)通过keepalived的方式,管理虚拟IP的漂移 2)通过MHA自带脚本方式,管理虚拟IP的漂移 MHA脚本方式 虚拟ip漂移的脚本下载地址 -> wget http ...

  7. Go 的package

    一.包的一些基本的概念 1.在同一个目录下的所有go文件中,只能有一个main函数.如果存在多个main函数,则在编译的时候会报错 那么,在同一个目录下的两个go文件究竟是什么关系? 为什么会彼此影响 ...

  8. 学习总结——JMeter做http接口功能测试

    JMeter对各种类型接口的测试 默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59):本地配好了JMeter ...

  9. No.6 selenium学习之路之下拉框Select

    HTML中,标签显示为select,有option下拉属性的为Select弹框 1.Xpath定位 Xpath语法,顺序是从1开始,编程语言中是0开始

  10. wpf tooltip 样式自定义

    <Style BasedOn="{StaticResource {x:Type ToolTip}}" TargetType="ToolTip"> & ...