传送门

暴力怎么搞,维护前缀和 $s[i]$ ,对于每一个 $s[i]$,枚举所有 $j\in[0,i-1]$,看看 $s[i]-s[j]$ 是否属于 $[L,R]$

如果属于就加入答案

$s[i]-s[j]\in[L,R]$ 等价于 $s[i]-s[j] \geqslant L , s[i]-s[j] \leqslant R$

即 $s[i]-L \geqslant s[j] , s[i]-R \leqslant s[j]$

发现对于每一个 $i$ 其实就是问区间 $[0,i-1]$ 中权值在 $[s[i]-L,s[i]-R]$ 之间的 $s[j]$ 的数量

直接权值树状数组,发现值域太大,所以要离散化

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
inline int read()
{int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); }while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }return x*f;
}
const int N=1e6+7;
int n,L,R;
int t[N];
ll ans,a[N],s[N];//注意long long
inline void add(int x) { while(x<=n+1) t[x]++,x+=x&-x; }
inline int ask(int x) { int res=0; while(x) res+=t[x],x-=x&-x; return res; }
int main()
{n=read(),L=read(),R=read();for(int i=1;i<=n;i++) a[i]=s[i]=s[i-1]+read();sort(a+1,a+n+2);for(int i=0;i<=n;i++)//注意i=0
    {int tr=lower_bound(a+1,a+n+2,s[i]-L+1)-a-1;//这个等价于upper_bound(a+1,a+n+2,s[i]-L)-a-1;int tl=lower_bound(a+1,a+n+2,s[i]-R)-a;ans+=ask(tr)-ask(tl-1);add(lower_bound(a+1,a+n+2,s[i])-a);}printf("%lld\n",ans);return 0;
}//si-sj>=L  si-L>=sj sj<=si-L
//si-sj<=R  si-R<=sj sj>=si-R

转载于:https://www.cnblogs.com/LLTYYC/p/11175354.html

P5459 [BJOI2016]回转寿司相关推荐

  1. (线段树)P5459 [BJOI2016]回转寿司

    P5459 [BJOI2016]回转寿司 添加链接描述https://www.luogu.com.cn/problem/P5459 思路:题目意思就是求出有多少个区间和在L~R范围内,这符合线段树的区 ...

  2. P5459 [BJOI2016]回转寿司 (cdq分治)

    题目链接:点击这里 PS:之前这个题是用动态开点的权值线段树写的,后来看到有大佬有cdq分治解决了这个问题,于是来学习记录一下这种解法,以加深对cdq分治的理解 题目大意: 给定一个长度为 nnn 的 ...

  3. 洛谷 P5459 [BJOI2016]回转寿司 【CDQ分治】

    题目链接 题意 给出一个序列,求有几个子段和 sumsumsum 满足L≤sum≤RL \le sum \le RL≤sum≤R 题解 设 pren=∑i=1naipre_n=\sum_{i=1}^{ ...

  4. P5459 [BJOI2016]回转寿司(动态开点)

    传送门 求R>=pre[r]−pre[l−1]>=LR>=pre[r]-pre[l-1]>=LR>=pre[r]−pre[l−1]>=L 就是pre[r]−R< ...

  5. android消息池,回转寿司你一定吃过!——Android消息机制(构造)

    消息机制的故事寿司陈放在寿司碟上,寿司碟按先后顺序被排成队列送上传送带.传送带被启动后,寿司挨个呈现到你面前,你有三种享用寿司的方法. 将Android概念带入后,就变成了Android消息机制的故事 ...

  6. bzoj 4627: [BeiJing2016]回转寿司 -- 权值线段树

    4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec  Memory Limit: 256 MB Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店. ...

  7. BZOJ4627 回转寿司 值域线段树

    Problem Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都 ...

  8. bzoj 4627 回转寿司(权值线段树)

    回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个 ...

  9. K - 回转寿司(值域段数(板题) + 动态开点)

    回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个 ...

  10. Bzoj4627 [BeiJing2016]回转寿司

    Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 329  Solved: 149 [Submit][Status][Discuss] Descript ...

最新文章

  1. javascript解析json
  2. 从*p++说指针,数组,结构和函数
  3. Angular5学习笔记 - 虚拟RestfulApi配置与使用(六)
  4. 基于长短读长和参考基因组的组装错误检测算法的研究
  5. 【MySQL命令】远程连接、数据库备份
  6. 高性能必须有 多活塞卡钳
  7. CentOS中部署jar包时提示:org.quartz.SchedulerException: Couldn‘t get host name
  8. [MySQL] mysql地理位置服务geometry字段类型
  9. Java反射,但速度更快
  10. java 如何导出json文件_java导出json格式文件的示例代码
  11. 【codevs2304】【BZOJ1875】HH去散步,第一次的矩阵加速DP
  12. 《信息安全工程》读书笔记
  13. 拓端tecdat|R语言配对检验分析案例
  14. mysql自定义函数优点_MySQL自定义函数
  15. 利用R语言的GWmodel进行GWR模型分析(内含错误解决方法)
  16. 【博客427】通过redfish协议操控服务器
  17. Java从入门到放弃系列
  18. days05-DSL查询文档以及对搜索结果进行处理
  19. 【GZH逸佳君】答辩ppt模板-ppt模板免费下载-ppt模板下载免费版 100套
  20. 【2021情人节主题征文】| 写了一个表白网页后,我跟女神在一起啦

热门文章

  1. 这封“领导痛批95后下属”的邮件,句句扎心!
  2. 阿里巴巴为什么要禁用Executors创建线程池?
  3. 为什么Go比Java快这么多?看完这个例子就懂!
  4. 你为什么当不了高管?几张图看懂高级经理人与普通管理者的区别
  5. 小米网技术架构变迁实践
  6. 微信类APP如何架构才能省流量
  7. 亚马逊中国官网挂了:因清仓大促销致官网崩溃,谁来背锅?
  8. 32岁程序员推拿一小时差点丧命!医生说按错这个地方
  9. 来,说说什么是运维人的情怀?
  10. 微信 8.0 来啦,炸裂!