#2016. 「SCOI2016」美味

思路:

  主席树;

代码:

#include <bits/stdc++.h>
using namespace std;
#define maxa 262143
#define maxn 200005
#define maxtree maxa*40
int n,m,ch[maxtree][],val[maxtree],L[maxtree],R[maxtree];
int root[maxn],mid[maxtree],tot;
inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
}
void build(int &now,int l,int r)
{
now=++tot,L[now]=l,R[now]=r;
if(l==r) return;mid[now]=l+r>>;
build(ch[now][],l,mid[now]);
build(ch[now][],mid[now]+,r);
}
void add(int &now,int pre,int x)
{
now=++tot,val[now]=val[pre]+,L[now]=L[pre],R[now]=R[pre];
if(L[now]==R[now]) return ;mid[now]=mid[pre];
if(x<=mid[now]) add(ch[now][],ch[pre][],x),ch[now][]=ch[pre][];
else add(ch[now][],ch[pre][],x),ch[now][]=ch[pre][];
}
bool query(int now,int pre,int l,int r)
{
if(L[now]>=l&&R[now]<=r) return (val[now]-val[pre])?true:false;
if(l<=mid[now]) if(query(ch[now][],ch[pre][],l,r)) return true;
if(r>mid[now]) if(query(ch[now][],ch[pre][],l,r)) return true;
return false;
}
int solve(int now,int pre,int deep,int b,int x,int l,int r)
{
if(deep<) return ;int mi=l+r>>;
if(b<(<<deep))
{
if(query(root[now],root[pre],max(,mi+-x),r-x)) return solve(now,pre,deep-,b,x,mi+,r)+(<<deep);
else return solve(now,pre,deep-,b,x,l,mi);
}
else
{
if(mi-x<||query(root[now],root[pre],max(l-x,),mi-x)) return solve(now,pre,deep-,b-(<<deep),x,l,mi)+(<<deep);
else return solve(now,pre,deep-,b-(<<deep),x,mi+,r);
}
}
int main()
{
freopen("data.txt","r",stdin);
in(n),in(m),build(root[],,maxa);int pos,b,x,l,r;
for(int i=;i<=n;i++) in(pos),add(root[i],root[i-],pos);
while(m--) in(b),in(x),in(l),in(r),printf("%d\n",solve(r,l-,,b,x,,maxa));
return ;
}

AC日记——「SCOI2016」美味 LiBreOJ 2016的更多相关文章

  1. AC日记——「SCOI2016」幸运数字 LiBreOJ 2013

    「SCOI2016」幸运数字 思路: 线性基: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 20005 # ...

  2. AC日记——「SCOI2016」背单词 LiBreOJ 2012

    #2012. 「SCOI2016」背单词 思路: Orz: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1 ...

  3. AC日记——「HNOI2017」礼物 LiBreOJ 2020

    #2020. 「HNOI2017」礼物 思路: A题进程: 一眼出式子->各种超时过不去->看题解明白还有fft这个东西->百度文库学习fft->学习dft->学习fft ...

  4. AC日记——「SCOI2015」情报传递 LiBreOJ 2011

    #2011. 「SCOI2015」情报传递 思路: 可持久化树状数组模板: 代码: #include <bits/stdc++.h> using namespace std; #defin ...

  5. loj#2016. 「SCOI2016」美味

    题目链接 loj#2016. 「SCOI2016」美味 题解 对于不带x的怎么做....可持久化trie树 对于带x,和trie树一样贪心 对于答案的二进制位,从高往低位贪心, 二进制可以表示所有的数 ...

  6. 「SCOI2016」美味 解题报告

    「SCOI2016」美味 状态极差无比,一个锤子题目而已 考虑每次对\(b\)和\(d\)求\(c=d \ xor \ (a+b)\)的最大值,因为异或每一位是独立的,所以我们可以尝试按位贪心. 如果 ...

  7. 「SCOI2016」美味

    「SCOI2016」美味 题目描述 一家餐厅有 \(n\) 道菜,编号 \(1 \ldots n\) ,大家对第 \(i\) 道菜的评价值为 \(a_i \:( 1 \leq i \leq n )\) ...

  8. AC日记——「HNOI2017」单旋 LiBreOJ 2018

    #2018. 「HNOI2017」单旋 思路: set+线段树: 代码: #include <bits/stdc++.h> using namespace std; #define max ...

  9. AC日记——「SCOI2015」国旗计划 LiBreOJ 2007

    #2007. 「SCOI2015」国旗计划 思路: 跪烂Claris 代码: #include <cstdio> #include <algorithm> #define ma ...

随机推荐

  1. Linux服务器上nginx安装的完整步骤

    1.环境准备: 服务器系统版本:CentOS 6.5 nginx软件版本:nginx-1.13.9 2.资源准备: nginx下载地址:http://nginx.org/download/nginx- ...

  2. ACE_Message_Block功能简介

    转载于:http://www.cnblogs.com/TianFang/archive/2006/12/30/607960.html ACE_Message_Block在Ace中用来表示消息的存放空间 ...

  3. CopyOnWrite容器?

    CopyOnWrite容器即写时复制的容器.通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后, ...

  4. HDU 4258 斜率优化dp

    Covered Walkway Time Limit: 30000/10000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  5. POJ 3087 Shuffle'm Up DFS

    link:http://poj.org/problem?id=3087 题意:给你两串字串(必定偶数长),按照扑克牌那样的洗法(每次从S2堆底中拿第一张,再从S1堆底拿一张放在上面),洗好后的一堆可以 ...

  6. OScached页面缓存的入门使用

    OSCache的使用: 一,环境的搭建: 1,把oscache.jar file放在 /WEB-INF/lib 目录下(Put the oscache.jar file in the /WEB-INF ...

  7. noip2012~2015刷题小记录

    2012d1t1 密码 模拟题 #include<cstdio> #include<cstdlib> #include<cstring> #include<c ...

  8. 【BZOJ】1588: [HNOI2002]营业额统计

    [算法]平衡树(treap)||双向链表 [题解]treap知识见数据结构. #include<cstdio> #include<algorithm> #include< ...

  9. ES6新增的let与const

    1.const 声明常量,一旦声明必须立马赋值,否则报错 const PI = 3.14 const PI; //报错:Uncaught SyntaxError: Missing initialize ...

  10. SQL Workbench/J

    最近测试segment, 使用了一个新的DB--SQL Workbench/J, 参考文档:http://docs.aws.amazon.com/redshift/latest/mgmt/connec ...