传送门

求R>=pre[r]−pre[l−1]>=LR>=pre[r]-pre[l-1]>=LR>=pre[r]−pre[l−1]>=L

就是pre[r]−R<=pre[l−1]<=pre[r]−Lpre[r]-R<=pre[l-1]<=pre[r]-Lpre[r]−R<=pre[l−1]<=pre[r]−L

也就是把每个i∈[1,n]i\in[1,n]i∈[1,n]作为pre[r]pre[r]pre[r]

去[0,i−1][0,i-1][0,i−1]的pre[]pre[]pre[]中去找符合条件的数字

那么可以直接去建立一颗权值线段树,可以离散化

也可以动态开点,建立一颗[−inf,inf][-inf,inf][−inf,inf]的线段树

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int inf = 1e10+1;
const int maxn = 3e5+10;
#define mid (l+r>>1)
int n,root,a[maxn],pre[maxn],l,r;
int ls[maxn<<5],rs[maxn<<5],sum[maxn<<5],id;
void update(int &rt,int l,int r,int val)
{if( !rt )  rt = ++id;if( l==r ){ sum[rt]++; return; }if( val<=mid ) update( ls[rt],l,mid,val);else  update(rs[rt],mid+1,r,val);sum[rt] = sum[ls[rt]]+sum[rs[rt]];
}
int ask(int &rt,int l,int r,int L,int R)
{if( !rt )  rt = ++id;if( l>=L&&r<=R )   return sum[rt];int ans = 0;if( L<=mid )    ans += ask(ls[rt],l,mid,L,R);if( R>mid  )  ans += ask(rs[rt],mid+1,r,L,R);return ans;
}
signed main()
{cin >> n >> l >> r;for(int i=1;i<=n;i++)  { cin >> a[i]; pre[i] = pre[i-1]+a[i]; }update(root,-inf,inf,0);int ans = 0;for(int i=1;i<=n;i++){ans += ask( root,-inf,inf,pre[i]-r,pre[i]-l );update(root,-inf,inf,pre[i] );}cout << ans;
}

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. K - 回转寿司(值域段数(板题) + 动态开点)

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

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

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

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

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

  7. BZOJ 4627回转寿司(值域线段树)

    4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 507  Solved: 217 [Submit][S ...

  8. 牛客练习赛84:牛客推荐系统开发之标签重复度(点分治+动态开点权值线段树)

    题意: 给你一棵树,问树上所有两点路径上的(最大值最小值乘积)之和. 题解: 很明显的一个点分治问题,然后就是个二维偏序问题了(虽然我也不知道啥是二维偏序). 点分治不难,重点是点分治内cal函数如何 ...

  9. 树上启发式合并问题 ---- 2019icpc南昌 K. Tree (树上启发式合并 + 动态开点线段树)

    题目链接 题目大意: 就是给你一颗树,每个点有个权值viv_ivi​,问你有多少对(x,y)(x,y)(x,y)满足: xxx不是yyy的祖先 yyy也不是xxx的祖先 xxx和yyy的距离不超过kk ...

最新文章

  1. Python 求最大子集的递归实现
  2. 错误 4 error C2220: 警告被视为错误 - 没有生成“object”文件
  3. 计算机原理中的cps,信息物理融合系统(CPS)原理
  4. 【牛腩】FreeTextBox
  5. 计算机毕业设计springboot门诊管理系统
  6. VBA学习之一:基本知识
  7. Thermal engine 解析
  8. WAREZ无形帝国(盗版之源) (转)
  9. Creator星球教程文章分类导航
  10. intellij idea 合并分支到主分支,主分支代码同步到某一分支
  11. docker创建容器一直restart解决
  12. python预测股票价格tushare_Python:tushare获取A股指数数据,使用LSTM进行预测,pythontushare,并...
  13. 社会管理网格化 源码_威县方家营镇创新“网格化”管理模式,助推乡村社会治理能力提升...
  14. 欧洲之星Fotona 4D是什么,欧洲之星Fotona 4和热玛吉哪个好
  15. 三轮DES差分攻击(免费完整代码)
  16. Linux性能优化(三)——sysstat性能监控工具
  17. 杰出产品经理阅读笔记(一)之职业认知篇
  18. 史上最全的Waymo自动驾驶出租车体验来了!
  19. 泡妞高手聊天搞笑记录
  20. 凯斯西储轴承数据CWRU数据集制作十分类

热门文章

  1. Diffusion Models - 扩散模型(一)
  2. 2022年焊工考试电焊工考试模拟试题卷及答案
  3. 计算机主机有哪些软胶,小型台式机推荐介绍
  4. 【PS-2】与PS有关的CO方面基础配置
  5. 超详细MapReduce程序实现WordCount案例
  6. 手机银行提示服务器证书异常,台州银行个人网银-常见问题及异常问题及处理方法...
  7. 使用python抓取喜馬拉雅音樂並且下載
  8. 360手机刷机:360N6刷机
  9. java计算机毕业设计库存管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  10. 使用socket实现聊天对话