bzoj 4627 值域线段树
4627: [BeiJing2016]回转寿司
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 523 Solved: 227
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 3 4 5
Sample Output
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define MAX 100005
#define M ((L+R)>>1)
const LL inf=;
LL pre[MAX];
int total_node=,root=;
int child[MAX*][];
LL sum[MAX*];
void irt(LL L,LL R,int id,LL x)
{
sum[id]++;
if(L==R){return;}
if(x<=M){
if(child[id][]==) child[id][]=++total_node;
irt(L,M,child[id][],x);
}
else{
if(child[id][]==) child[id][]=++total_node;
irt(M+,R,child[id][],x);
}
}
LL ask(LL L,LL R,int id,LL l,LL r)
{
if(L>=l&&R<=r) return sum[id];
LL s=;
if(l<=M&&child[id][]) s+=ask(L,M,child[id][],l,r);
if(r>M&&child[id][]) s+=ask(M+,R,child[id][],l,r);
return s;
}
int main()
{
freopen("in.txt","r",stdin);
int N,m,i,j,k;
LL Li,Ri,ai;
scanf("%d%lld%lld",&N,&Li,&Ri);
for(i=;i<=N;++i){
scanf("%lld",&ai);
pre[i]=pre[i-]+ai;
}
LL ans=;
irt(-inf,inf,root,);
for(i=;i<=N;++i)
{
ans+=ask(-inf,inf,root,pre[i]-Ri,pre[i]-Li);;
irt(-inf,inf,root,pre[i]);
}
cout<<ans<<endl;
return ;
}
bzoj 4627 值域线段树的更多相关文章
- 值域线段树 bzoj 4627
这是题目链接4627: [BeiJing2016]回转寿司 题目大意: 给定n个数,求有多少个字段和在 满足 L<=sum<=R; 解题思路 需要解这个题目,需要有线段树加可持续化的思想, ...
- BZOJ 3218(a + b Problem-二分图套值域线段树)
出这题的人是怎么想出来的…… 言归正传,这题是二分图套值域线段树. 首先经过 @Vfleaking的神奇建图后,把图拆成二分图, 不妨利用有向图最小割的性质建图(以前我一直以为最小割和边的方向无关,可 ...
- BZOJ.4184.shallot(线段树分治 线性基)
BZOJ 裸的线段树分治+线性基,就是跑的巨慢_(:з」∠)_ . 不知道他们都写的什么=-= //41652kb 11920ms #include <map> #include < ...
- [BZOJ3065]带插入区间K小值 解题报告 替罪羊树+值域线段树
刚了一天的题终于切掉了,数据结构题的代码真**难调,这是我做过的第一道树套树题,做完后感觉对树套树都有阴影了......下面写一下做题记录. Portal Gun:[BZOJ3065]带插入区间k小值 ...
- Permutation UVA - 11525(值域树状数组,树状数组区间第k大(离线),log方,log)(值域线段树第k大)
Permutation UVA - 11525 看康托展开 题目给出的式子(n=s[1]*(k-1)!+s[2]*(k-2)!+...+s[k]*0!)非常像逆康托展开(将n个数的所有排列按字典序排序 ...
- [BZOJ 4025]二分图(线段树分治+带边权并查集)
[BZOJ 4025]二分图(线段树分治+带边权并查集) 题面 给出一个n个点m条边的图,每条边会在时间s到t出现,问每个时间的图是否为一个二分图 \(n,m,\max(t_i) \leq 10^5\ ...
- 【BZOJ 3476】 线段树===
59 懒惰的奶牛贝西所在的牧场,散落着 N 堆牧草,其中第 i 堆牧草在 ( Xi,Yi ) 的位置,数量有 Ai 个单位.贝西从家移动到某一堆牧草的时候,只能沿坐标轴朝正北.正东.正西.正南这四个 ...
- Luogu P1198 BZOJ 1012 最大数 (线段树)
手动博客搬家: 本文发表于20170821 14:32:05, 原地址https://blog.csdn.net/suncongbo/article/details/77449455 URL: (Lu ...
- bzoj 3585 mex - 线段树 - 分块 - 莫队算法
Description 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Input 第一行n,m. 第二行为n个数. 从第三行开始,每行一个询问 ...
随机推荐
- Android Study Notes
@1:按下back键退回到home界面时,会调用onDestroy() 按下back键时会调用onDestroy()销毁当前的activity,重新启动此activity时会调用onCreate()重 ...
- debian flam3 源码
https://packages.debian.org/source/jessie/flam3 Source Package: flam3 (3.0.1-3) Links for flam3 Debi ...
- C++匿名名字空间
转自:http://blog.csdn.net/eric_arrow/article/details/8978905 名字空间(namespace),是C++提供的一个解决符合名字冲突的特性.标准规定 ...
- ORM到底是用还是不用?(复制)
ORM即Object/Relation Mapping的简写,一般称作“对象关系映射”,在Web开发中最常出没于和关系型数据库交互的地方.接口.中间件.库.包,你都可以这么称呼它.ORM我们可以结合P ...
- MySQL 温故知心(二) 事务的隔离级别
事务的隔离级别 A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据但是 在A事务中查询的话 查到的都是操作之后的数据没有提交的数据只有自己看得到,并没有update到数据库 查看 ...
- hdu6121 Build a tree
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6121 题面: Build a tree Time Limit: 2000/1000 MS (J ...
- TOSCA自动化测试工具视频资料
https://www.udemy.com/ search 'TOCSA' 找到两个免费资料学习
- Web前端页面的浏览器兼容性测试心得(三)总结一些IE8兼容问题的解决方案
由于IE8不支持HTML5,而它又是Win7的默认浏览器,我们即使讨厌它,在这几年却也拿它没办法. 最近做了个需要兼容IE8的项目,不可避免地用了HTML5+CSS3,甚至canvas和svg,做兼容 ...
- zookeeper curator客户端之增删改查
zookeeper curator客户端之增删改查 zookeeper安装:https://www.cnblogs.com/zwcry/p/10272506.html curator客户端是Apach ...
- C++ 第三十三天
Ⅰ.类成员函数的隐式参数 T *const this . 就是说对于某个类的成员函数 returnType function() 的真实面目其实是这样的 returnType function(T * ...