当前位置:网站首页>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;
}
};
边栏推荐
- 食品行业仓储条码管理系统解决方案
- Comprehensive ability evaluation system
- hashlimit速率控制
- Several important classes in unity
- Solutions: word coverage restoration, longest serial number, Xiaoyu buys stationery, Xiaoyu's electricity bill
- Leetcode32 longest valid bracket (dynamic programming difficult problem)
- 图应用详解
- Practical development of member management applet 06 introduction to life cycle function and user-defined method
- How can programmers resist the "three poisons" of "greed, anger and ignorance"?
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
猜你喜欢

Security xxE vulnerability recurrence (XXe Lab)

Maxay paper latex template description

Mysql数据库慢sql抓取与分析

Web components series (VII) -- life cycle of custom components

How many of the 10 most common examples of istio traffic management do you know?

自动化测试的好处

Benefits of automated testing

题解:《单词覆盖还原》、《最长连号》、《小玉买文具》、《小玉家的电费》

Solution to the problem that the root account of MySQL database cannot be logged in remotely

Execution order of scripts bound to game objects
随机推荐
Query the number and size of records in each table in MySQL database
Solution to the problem that the root account of MySQL database cannot be logged in remotely
About some basic DP -- those things about coins (the basic introduction of DP)
2/13 review Backpack + monotonic queue variant
One question per day (Mathematics)
QML和QWidget混合开发(初探)
Basic knowledge of binary tree, BFC, DFS
Interface idempotency
查询mysql数据库中各表记录数大小
Execution order of scripts bound to game objects
The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched
MySQL master-slave replication
Script lifecycle
Global and Chinese markets for endoscopic drying storage cabinets 2022-2028: Research Report on technology, participants, trends, market size and share
Data processing methods - smote series and adasyn
Use js to complete an LRU cache
The global and Chinese market of negative pressure wound therapy unit (npwtu) 2022-2028: Research Report on technology, participants, trends, market size and share
Thread sleep, thread sleep application scenarios
Yyds dry goods inventory web components series (VII) -- life cycle of custom components
Explain in simple terms node template parsing error escape is not a function