当前位置:网站首页>729. My schedule I (set or dynamic open point segment tree)
729. My schedule I (set or dynamic open point segment tree)
2022-07-06 04:16:00 【Harris-H】
729. My schedule I(set or Dynamic open point line segment tree )
Interval coverage , Interval query . Therefore, the value range is large , Small number of queries , So open it dynamically .
The tree building method is similar to the ordinary segment tree , Namely pushdown It is decided whether the left and right sons are empty , Then all functions can use pointers .
Time complexity : O ( n l o g C ) O(nlogC) O(nlogC)
class MyCalendar {
public:
struct node{
node *l,*r;
int s,lz;
};
node * rt = new node();
const int NN = 1e9;
MyCalendar() {
}
void re(node* a){
a->s=a->l->s|a->r->s;
}
void pd(node* a){
if(a->l==NULL) a->l= new node();
if(a->r==NULL) a->r= new node();
if(!a->lz) return;
a->l->s=a->lz;
a->r->s=a->lz;
a->l->lz=a->r->lz=a->lz;
a->lz=0;
}
void upd(node *a,int l,int r,int L,int R,int v){
if(l>=L&&r<=R){
a->s=v;
a->lz=v;return;
}
pd(a);
int m = l+r>>1;
if(L<=m) upd(a->l,l,m,L,R,v);
if(R>m) upd(a->r,m+1,r,L,R,v);
re(a);
}
bool que(node *a,int l,int r,int L,int R){
if(l>=L&&r<=R) return a->s;
int m = l+r>>1;
pd(a);
int ok=0;
if(L<=m) ok|=que(a->l,l,m,L,R);
if(R>m) ok|=que(a->r,m+1,r,L,R);
return ok;
}
bool book(int st, int ed) {
if(que(rt,0,NN,st,ed-1)) return false;
upd(rt,0,NN,st,ed-1,1);
return true;
}
};
set, Practice every time lower_bound l>=ed Of Location p p p.
And then determine ( − − p ) → r ≤ s t < e d ≤ l (--p)\rightarrow r\le st<ed\le l (−−p)→r≤st<ed≤l
Time complexity : O ( n l o g n ) O(nlogn) O(nlogn)
class MyCalendar {
set<pair<int, int>> booked;
public:
bool book(int start, int end) {
auto it = booked.lower_bound({
end, 0});
if (it == booked.begin() || (--it)->second <= start) {
booked.emplace(start, end);
return true;
}
return false;
}
};
边栏推荐
- Redis (replicate dictionary server) cache
- [Key shake elimination] development of key shake elimination module based on FPGA
- Unity中几个重要类
- Benefits of automated testing
- Overturn your cognition? The nature of get and post requests
- Global and Chinese market of aircraft anti icing and rain protection systems 2022-2028: Research Report on technology, participants, trends, market size and share
- 解决“C2001:常量中有换行符“编译问题
- 图应用详解
- Stable Huawei micro certification, stable Huawei cloud database service practice
- Mysql数据库慢sql抓取与分析
猜你喜欢

查询mysql数据库中各表记录数大小

Slow SQL fetching and analysis of MySQL database

VNCTF2022 WriteUp

Execution order of scripts bound to game objects
![[adjustable delay network] development of FPGA based adjustable delay network system Verilog](/img/82/7ff7f99f5164f91fab7713978cf720.png)
[adjustable delay network] development of FPGA based adjustable delay network system Verilog

Data processing methods - smote series and adasyn

IDEA编译JSP页面生成的class文件路径

Fundamentals of SQL database operation

电脑钉钉怎么调整声音

math_ Derivative function derivation of limit & differential & derivative & derivative / logarithmic function (derivative definition limit method) / derivative formula derivation of exponential functi
随机推荐
P3033 [usaco11nov]cow steelchase g (similar to minimum path coverage)
hashlimit速率控制
Le compte racine de la base de données MySQL ne peut pas se connecter à distance à la solution
DM8 backup set deletion
. Net interprocess communication
P2648 make money
Tips for using dm8huge table
Overturn your cognition? The nature of get and post requests
10个 Istio 流量管理 最常用的例子,你知道几个?
Detailed explanation of serialization and deserialization
Lombok原理和同时使⽤@Data和@Builder 的坑
Global and Chinese markets for fire resistant conveyor belts 2022-2028: Research Report on technology, participants, trends, market size and share
2327. 知道秘密的人数(递推)
深入浅出node模板解析错误escape is not a function
The global and Chinese market of negative pressure wound therapy unit (npwtu) 2022-2028: Research Report on technology, participants, trends, market size and share
Use js to complete an LRU cache
Stable Huawei micro certification, stable Huawei cloud database service practice
Cross domain and jsonp details
Introduction to hashtable
HotSpot VM