博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 4627: [BeiJing2016]回转寿司
阅读量:5992 次
发布时间:2019-06-20

本文共 985 字,大约阅读时间需要 3 分钟。

线段树裸题

#include
using namespace std;int cnt,root,sz[10000005],ls[10000005],rs[10000005];long long a[100005];int query(int t,long long l,long long r,long long x,long long y){ if (!t) return 0; if (r
y) return 0; if (l>=x && r<=y) return sz[t]; long long mid=(l+r)>>1; return query(ls[t],l,mid,x,y)+query(rs[t],mid+1,r,x,y);}void insert(int &t,long long l,long long r,long long x){ if (!t) t=++cnt; if (l==r) { sz[t]++; return; } long long mid=(l+r)>>1; if (x<=mid) insert(ls[t],l,mid,x); else insert(rs[t],mid+1,r,x); sz[t]=sz[ls[t]]+sz[rs[t]];}int main(){ int n,L,R; scanf("%d%d%d",&n,&L,&R); for (int i=1; i<=n; i++) scanf("%lld",&a[i]); for (int i=1; i<=n; i++) a[i]+=a[i-1]; insert(root,-1ll<<60,1ll<<60,0); long long ans=0; for (int i=1; i<=n; i++){ if (L>R) continue; ans+=query(root,-1ll<<60,1ll<<60,a[i]-R,a[i]-L); insert(root,-1ll<<60,1ll<<60,a[i]); } printf("%lld\n",ans); return 0;}

  

转载于:https://www.cnblogs.com/silenty/p/9892887.html

你可能感兴趣的文章
Docker 创建镜像、修改、上传镜像
查看>>
[Tailwind] Style Elements on hover and focus with Tailwind’s State Variants
查看>>
基于Token认证的多点登录和WebApi保护
查看>>
区分不同操作系统、编译器不同版本的宏
查看>>
【强化学习】python 实现 q-learning 例三(例一改写)
查看>>
Ajax学习笔记
查看>>
Java 内存区域和GC机制
查看>>
迁向云端
查看>>
打靶算法分析
查看>>
WCF从理论到实践(16):操作重载(带视频+ppt+源码)
查看>>
CSharp tar类型文件压缩与解压
查看>>
python中文注释及输出出错
查看>>
近日学习Cache,搜集到的一个Demo下载[不断修改、讨论]
查看>>
C#调用C++写的Dll时的运行时错误解决
查看>>
Ubuntu下如何进入终端命令行
查看>>
步步为营UML建模系列五、时序图(Squence diagram)
查看>>
【转】iOS平台安装包介绍
查看>>
GIS工具-shp浏览器
查看>>
.NET Core微服务之基于Steeltoe使用Hystrix熔断保护与监控
查看>>
软件调试的艺术(Linux Unix平台软件调试权威著作)
查看>>