AC日记——「SCOI2016」美味 LiBreOJ 2016
思路:
主席树;
代码:
#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的更多相关文章
- AC日记——「SCOI2016」幸运数字 LiBreOJ 2013
「SCOI2016」幸运数字 思路: 线性基: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 20005 # ...
- AC日记——「SCOI2016」背单词 LiBreOJ 2012
#2012. 「SCOI2016」背单词 思路: Orz: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1 ...
- AC日记——「HNOI2017」礼物 LiBreOJ 2020
#2020. 「HNOI2017」礼物 思路: A题进程: 一眼出式子->各种超时过不去->看题解明白还有fft这个东西->百度文库学习fft->学习dft->学习fft ...
- AC日记——「SCOI2015」情报传递 LiBreOJ 2011
#2011. 「SCOI2015」情报传递 思路: 可持久化树状数组模板: 代码: #include <bits/stdc++.h> using namespace std; #defin ...
- loj#2016. 「SCOI2016」美味
题目链接 loj#2016. 「SCOI2016」美味 题解 对于不带x的怎么做....可持久化trie树 对于带x,和trie树一样贪心 对于答案的二进制位,从高往低位贪心, 二进制可以表示所有的数 ...
- 「SCOI2016」美味 解题报告
「SCOI2016」美味 状态极差无比,一个锤子题目而已 考虑每次对\(b\)和\(d\)求\(c=d \ xor \ (a+b)\)的最大值,因为异或每一位是独立的,所以我们可以尝试按位贪心. 如果 ...
- 「SCOI2016」美味
「SCOI2016」美味 题目描述 一家餐厅有 \(n\) 道菜,编号 \(1 \ldots n\) ,大家对第 \(i\) 道菜的评价值为 \(a_i \:( 1 \leq i \leq n )\) ...
- AC日记——「HNOI2017」单旋 LiBreOJ 2018
#2018. 「HNOI2017」单旋 思路: set+线段树: 代码: #include <bits/stdc++.h> using namespace std; #define max ...
- AC日记——「SCOI2015」国旗计划 LiBreOJ 2007
#2007. 「SCOI2015」国旗计划 思路: 跪烂Claris 代码: #include <cstdio> #include <algorithm> #define ma ...
随机推荐
- 2017-7-18-每日博客-关于Linux下的鲜为人知的10条命令.doc
这篇文章的目的是介绍一些少有人知的Linux命令,它们一定会高效地帮你管理你的桌面/服务器. 1. sudo !!命令 没有特定输入sudo命令而运行,将给出没有权限的错误.那么,你不需要重写整个命令 ...
- ObservableCollection 类
假设您正在创建 Windows 窗体应用程序,并且已将 DataGridView 控件绑定到标准 List(Of Customer) 数据结构.您希望能够使网格中的项目与基础数据源中的值保持同步.也就 ...
- Independence.
It's not giving up, it's letting go, and moving to a better place. I will survive and be the one who ...
- String.replaceAll()方法替换字符串中的反斜杠(\)
replaceAll()方法实际是采用正则表达式的规则去匹配的. 在regex中"\\"表示一个"\",在java中一个"\"也要用&quo ...
- 珠排序Bead Sort
珠排序非常另类[地精也很另类],看完你就知道了,先介绍思路,再分解过程 这是它的英文论文 http://www.cs.auckland.ac.nz/~jaru003/research/publicat ...
- Sass 颜色函数
/* * Sass 颜色函数 * RGB 颜色函数 * 1. rgb($red,$green,$blue):根据红.绿.蓝三个值创建一个颜色: * rgb(200,40,88) //根据r:200,g ...
- OPENId是什么, OAUTH 是什么
what is openId open id is said to be a protocol which uses url as username, so if a website supports ...
- dot.js使用心得
一.dot.js介绍 最近用到的数据模板引擎有很多,今天讲的doT.js也是其中一种. doT.js的特点是体积小,速度快,并且不依赖其他插件. 官网下载:http://olado.github.io ...
- elementui input样式覆盖 头部小图等
.nav-right >>> .keywords .el-input__inner { -webkit-appearance: none; background-color: #F3 ...
- 设计模式之Factory
设计模式总共有23种模式这仅仅是为了一个目的:解耦+解耦+解耦...(高内聚低耦合满足开闭原则) 介绍: Factory Pattern有3种当然是全部是creational pattern. 1.S ...