pbds库 平衡树:one , two

#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> set_t;
struct data{
int x,r,f;
data(int _x=0,int _r=0,int _f=0):x(_x),r(_r),f(_f){}
bool operator<(const data& b)const{
if(x!=b.x)return x<b.x;
return f>b.f;
}
}a[SIZE];
set_t s[10021];
int main(){
DRII(n,K);
REP(i,n){
DRIII(x,r,f);f+=10;
a[i]=data(x,r,f);
a[i+n]=data(x+r,x,-f);
}
sort(a,a+2*n);
LL an=0;
REP(i,2*n){
if(a[i].f>0){
REPP(j,a[i].f-K,a[i].f+K+1){
an+=SZ(s[j])-s[j].order_of_key(a[i].x-a[i].r);
}
s[a[i].f].insert(a[i].x);
}
else{
s[-a[i].f].erase(a[i].r);
}
}
cout<<an<<endl;
return 0;
}
/*
int main() {
set_t s;
for ( int i=0; i<5; i++ ) s.insert(10*i);
assert(*s.find_by_order(0) == 0);
assert(*s.find_by_order(3) == 30);
assert(s.find_by_order(5) == s.end());
assert(s.order_of_key(0) == 0);
assert(s.order_of_key(30) == 3);
assert(s.order_of_key(35) == 4);
assert(s.order_of_key(100) == 5);
return 0;
}
*/

C++一些不常见的库及函数的更多相关文章

  1. Atitit 数据库 标准库  sdk 函数库 编程语言 mysql oracle  attilax总结

    Atitit 数据库 标准库  sdk 函数库 编程语言 mysql oracle  attilax总结 1.1. 常见的编程语言以及数据库 sql内部函数库标准化库一般有以下api1 1.2. 各个 ...

  2. JavaScript中常见的数组操作函数及用法

    JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...

  3. JavaScript中常见的字符串操作函数及用法

    JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...

  4. python补充最常见的内置函数

    最常见的内置函数是: print("Hello World!") 数学运算 abs(-5)                         # 取绝对值,也就是5 round(2. ...

  5. 使用STL库sort函数对vector进行排序

    使用STL库sort函数对vector进行排序,vector的内容为对象的指针,而不是对象. 代码如下 #include <stdio.h> #include <vector> ...

  6. 【液晶模块系列基础视频】4.2.X-GUI图形界面库-画矩形函数简介

    [液晶模块系列基础视频]4.2.X-GUI图形界面库-画矩形函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址: ...

  7. C++ 动态库导出函数名“乱码”及解决

    C++ 动态库导出函数名“乱码”及解决 刚接触C++,在尝试从 dll 中导出函数时,发现导出的函数名都“乱码”了. 导出过程如下: 新建一个Win32项目: 新建的解决方案里有几个导出的示例: // ...

  8. Python math库常用函数

    math库常用函数及举例: 注意:使用math库前,用import导入该库>>> import math 取大于等于x的最小的整数值,如果x是一个整数,则返回x>>> ...

  9. c/c++ 标准库 bind 函数 详解

    标准库 bind 函数 详解 bind函数:接收一个函数名作为参数,生成一个新的函数. auto newCallable = bind(callbale, arg_list); arg_list中的参 ...

随机推荐

  1. throw throws 区别

    throw是语句抛出一个异常.语法:throw (异常对象);         throw e; throws是方法可能抛出异常的声明.(用在声明方法时,表示该方法可能要抛出异常)语法:[(修饰符)] ...

  2. CEF的备忘笔记

    CEF: Chromium Embeded Framewrok;  (Chromium嵌入式框架)可以在PC(Linux,MacOS,Windows)上把Chromium的内核嵌入到应用程序的框架: ...

  3. SAS 读取数据文件

    每次读取数据时需要告诉SAS3件事:1:数据存在哪里?2:数据的形式3:创建的数据集的类型(永久/临时) 1 读取SAS数据集 DATA temp; /*temp 为创建的数据集名称*/ INFILE ...

  4. HTML5: HTML5 MathML

    ylbtech-HTML5: HTML5 MathML 1.返回顶部 1. HTML5 MathML HTML5 可以在文档中使用 MathML 元素,对应的标签是 <math>...&l ...

  5. 65、salesforce的数据分页

    <apex:page controller="PagingController"> <apex:form > <apex:pageBlock titl ...

  6. git push 报错:failed to push some refs to 'git@git.xxxx:devops/thor.git'

    error: failed to push some refs to 'git@git.caicaivip.com:devops/thor.git' hint: Updates were reject ...

  7. spring mvc 初始

    今天带领大家开始第一天的spring  mvc学习 首先我们要下载maven然后配置IDE 然后选择new 新建项目 然后选择maven,然后选择maven的webapp 然后创建springmvc ...

  8. HBase 入门之数据刷写(Memstore Flush)详细说明

    接触过 HBase 的同学应该对 HBase 写数据的过程比较熟悉(不熟悉也没关系).HBase 写数据(比如 put.delete)的时候,都是写 WAL(假设 WAL 没有被关闭) ,然后将数据写 ...

  9. 防止重复提交 aspx.net

    :服务器控制.后台生成一个token,存入session或者其他缓存里面.渲染表单时,给form一个隐藏的token(令牌).用户提交表单时:先判断表单里面的token是否存在,不存在拒绝接受此数据: ...

  10. 基于MFC的Media Player播放器的制作(2---导入第三方库和介绍第三方库)

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 这一节我们介绍如何导入类库,和介绍类库的一功能和介绍MFC的一些主要的模块部分.下面是如何导入类库.第一步我们选中 Media Playe ...