博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jzoj4747 被粉碎的线段树
阅读量:5218 次
发布时间:2019-06-14

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

额这个题么

有一个很关键的点:结点个数依然为2N-1(证明可以看sam的讲稿)

不难发现以下性质:区间定位个数+区间所覆盖的节点个数=2*区间长度

所以问题变为,一个区间覆盖了多少个节点?

我们可以求出所有的节点,然后这个问题就是一个二维偏序计数问题了

具体用离线+按照r排序套上树状数组即可

#include
#include
using namespace std;inline int c(int x){ return x&-x; }struct E{ int l,r,k,a; } s[100010];struct P{ int l,r; } w[200010];inline bool c1(P a,P b){ return a.r

转载于:https://www.cnblogs.com/Extended-Ash/p/9477288.html

你可能感兴趣的文章
如何解除循环引用
查看>>
android中fragment的使用及与activity之间的通信
查看>>
字典【Tire 模板】
查看>>
jquery的contains方法
查看>>
python3--算法基础:二分查找/折半查找
查看>>
Perl IO:随机读写文件
查看>>
Perl IO:IO重定向
查看>>
优化算法系列-模拟退火算法(1)——0-1背包问题
查看>>
转:基于用户投票的排名算法系列
查看>>
WSDL 详解
查看>>
[转]ASP数组全集,多维数组和一维数组
查看>>
C# winform DataGridView 常见属性
查看>>
逻辑运算和while循环.
查看>>
Nhiberate (一)
查看>>
c#后台计算2个日期之间的天数差
查看>>
安卓开发中遇到的小问题
查看>>
ARTS打卡第3周
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>