博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【AtCoder - 2300】Snuke Line(树状数组)
阅读量:7230 次
发布时间:2019-06-29

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

题意

有n个纪念品,购买区间是\([l_i,r_i]\)。求每i(1~m)站停一次,可以买到多少纪念品。

题解

每隔d站停一次的列车,一定能买到购买区间的长度≥d的纪念品。

长度比d小但包含了d的倍数的纪念品也可以买到。
所以,如果按长度给纪念品排序,用树状数组维护长度小于当前d的购买区间,那么就可以很快求出每个停靠点(d的倍数)有多少个长度不超过d的纪念品了。

代码

#include 
#include
#define N 100001using namespace std;int n,m;struct souvenir{ int l,r,len; bool operator <(const souvenir &b){ return len

树状数组的英文名叫 Fenwick Tree

转载地址:http://vxpfm.baihongyu.com/

你可能感兴趣的文章
[Java开发之路](7)RandomAccessFile类详解
查看>>
Linux中的tty与pts
查看>>
Java socket示例(demo)TCP/IP
查看>>
error: WatchKit App doesn't contain any WatchKit Extensions whose WKAppBundleIdentifier matches
查看>>
计算UITextView的滑动高度
查看>>
AngularJs的UI组件ui-Bootstrap分享(四)——Datepicker Popup
查看>>
Java虚拟机------垃圾收集器
查看>>
UVA 1376 Animal Run 最短路
查看>>
oracle12c之 单机12.1.0.1打补丁
查看>>
封装了集中常用的文件读的方法
查看>>
51Nod-1080 两个数的平方和【暴力法】
查看>>
Web开发实用网站资源
查看>>
“深入理解”—交换排序算法
查看>>
ng-cordova 手机拍照或从相册选择图片
查看>>
ARM 汇编指令集 特点之一:条件执行后缀
查看>>
软工第五次作业--原型设计(结对)
查看>>
优化PartialRenderFormMixin性能
查看>>
如何让代码健壮
查看>>
网页布局要点
查看>>
vs2010 VS2008 VS2005 快捷键大全
查看>>