P5459 [BJOI2016]回转寿司
传送门
暴力怎么搞,维护前缀和 $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]回转寿司相关推荐
- (线段树)P5459 [BJOI2016]回转寿司
P5459 [BJOI2016]回转寿司 添加链接描述https://www.luogu.com.cn/problem/P5459 思路:题目意思就是求出有多少个区间和在L~R范围内,这符合线段树的区 ...
- P5459 [BJOI2016]回转寿司 (cdq分治)
题目链接:点击这里 PS:之前这个题是用动态开点的权值线段树写的,后来看到有大佬有cdq分治解决了这个问题,于是来学习记录一下这种解法,以加深对cdq分治的理解 题目大意: 给定一个长度为 nnn 的 ...
- 洛谷 P5459 [BJOI2016]回转寿司 【CDQ分治】
题目链接 题意 给出一个序列,求有几个子段和 sumsumsum 满足L≤sum≤RL \le sum \le RL≤sum≤R 题解 设 pren=∑i=1naipre_n=\sum_{i=1}^{ ...
- P5459 [BJOI2016]回转寿司(动态开点)
传送门 求R>=pre[r]−pre[l−1]>=LR>=pre[r]-pre[l-1]>=LR>=pre[r]−pre[l−1]>=L 就是pre[r]−R< ...
- android消息池,回转寿司你一定吃过!——Android消息机制(构造)
消息机制的故事寿司陈放在寿司碟上,寿司碟按先后顺序被排成队列送上传送带.传送带被启动后,寿司挨个呈现到你面前,你有三种享用寿司的方法. 将Android概念带入后,就变成了Android消息机制的故事 ...
- bzoj 4627: [BeiJing2016]回转寿司 -- 权值线段树
4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec Memory Limit: 256 MB Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店. ...
- BZOJ4627 回转寿司 值域线段树
Problem Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都 ...
- bzoj 4627 回转寿司(权值线段树)
回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个 ...
- K - 回转寿司(值域段数(板题) + 动态开点)
回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个 ...
- Bzoj4627 [BeiJing2016]回转寿司
Time Limit: 10 Sec Memory Limit: 256 MB Submit: 329 Solved: 149 [Submit][Status][Discuss] Descript ...
最新文章
- javascript解析json
- 从*p++说指针,数组,结构和函数
- Angular5学习笔记 - 虚拟RestfulApi配置与使用(六)
- 基于长短读长和参考基因组的组装错误检测算法的研究
- 【MySQL命令】远程连接、数据库备份
- 高性能必须有 多活塞卡钳
- CentOS中部署jar包时提示:org.quartz.SchedulerException: Couldn‘t get host name
- [MySQL] mysql地理位置服务geometry字段类型
- Java反射,但速度更快
- java 如何导出json文件_java导出json格式文件的示例代码
- 【codevs2304】【BZOJ1875】HH去散步,第一次的矩阵加速DP
- 《信息安全工程》读书笔记
- 拓端tecdat|R语言配对检验分析案例
- mysql自定义函数优点_MySQL自定义函数
- 利用R语言的GWmodel进行GWR模型分析(内含错误解决方法)
- 【博客427】通过redfish协议操控服务器
- Java从入门到放弃系列
- days05-DSL查询文档以及对搜索结果进行处理
- 【GZH逸佳君】答辩ppt模板-ppt模板免费下载-ppt模板下载免费版 100套
- 【2021情人节主题征文】| 写了一个表白网页后,我跟女神在一起啦