#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. 禁用 nouveau 驱动

    安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突. 安装网上方法尝试了modprob.d/blacklist.conf里的各种修改,重启以后还是没有成功警用nouveau驱动 最后看见 ...

  2. POJ3164:Command Network(有向图的最小生成树)

    Command Network Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 20766   Accepted: 5920 ...

  3. Django请求原理(二)

    1,Web服务器(中间件)收到一个http请求 2,Django在URLconf里查找对应的视图(View)函数来处理http请求 3,视图函数调用相应的数据模型来存取数据.调用相应的模板向用户展示页 ...

  4. js的alert抛出之后怎么让页面停止执行?

    方法: 1.如果是form的submit提交,如果要停止,则返回false:如果提交,则返回true就行了. 2.如果是手工跳转的方式,则如果要停止,则不执行跳转代码:如果要提交,则执行跳转代码 示例 ...

  5. hdu4085 Peach Blossom Spring

    Peach Blossom Spring http://acm.hdu.edu.cn/showproblem.php?pid=4085 Time Limit: 10000/5000 MS (Java/ ...

  6. 【C++对象模型】第五章 构造、解构、拷贝 语意学

    1.构造语义学 C++的构造函数可能内带大量的隐藏码,因为编译器会扩充每一个构造函数,扩充程度视 class 的继承体系而定.一般而言编译器所做的扩充操作大约如下: 所有虚基类成员构造函数必须被调用, ...

  7. VM 脚本回快照和开关机

    #Import PowerCLI*Get-Module -ListAvailable PowerCLI* | Import-Module #Resolve login issueSet-PowerCL ...

  8. 洛谷P2868 [USACO07DEC]观光奶牛 Sightseeing Cows

    题目描述 Farmer John has decided to reward his cows for their hard work by taking them on a tour of the ...

  9. 2016-2017 2 20155335《java程序设计》第四周总结

    #  20155335    <Java程序设计>第四周学习总结 ##  教材学习内容总结 继承,在本职上是特殊到一般的关系,即is—a关系,子类继承父类,表明子类是一种特殊的父类,并且具 ...

  10. Web Session 浅入浅出(山东数漫江湖)

    使用过几种Web App开发语言和框架,都会接触到Session的概念.即使是一个简单站点访问计数的功能,也常常使用Session来实现的.其他常用的领域还有购物车,登录用户等.但是,对Session ...