当前位置:网站首页>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;
}
};
边栏推荐
- 判断当天是当月的第几周
- Mysql数据库慢sql抓取与分析
- HotSpot VM
- SharedPreferences 源码分析
- Record the pit of NETCORE's memory surge
- Figure application details
- Fundamentals of SQL database operation
- Explain in simple terms node template parsing error escape is not a function
- Record the pit of NETCORE's memory surge
- Global and Chinese markets for fire resistant conveyor belts 2022-2028: Research Report on technology, participants, trends, market size and share
猜你喜欢
Path of class file generated by idea compiling JSP page
Database, relational database and NoSQL non relational database
STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
Detailed explanation of serialization and deserialization
DM8 backup set deletion
Execution order of scripts bound to game objects
Redis (replicate dictionary server) cache
math_ Derivative function derivation of limit & differential & derivative & derivative / logarithmic function (derivative definition limit method) / derivative formula derivation of exponential functi
Deep learning framework installation (tensorflow & pytorch & paddlepaddle)
[PSO] Based on PSO particle swarm optimization, matlab simulation of the calculation of the lowest transportation cost of goods at material points, including transportation costs, agent conversion cos
随机推荐
【按鍵消抖】基於FPGA的按鍵消抖模塊開發
When debugging after pycharm remote server is connected, trying to add breakpoint to file that does not exist: /data appears_ sda/d:/segmentation
Yyds dry goods inventory hcie security Day11: preliminary study of firewall dual machine hot standby and vgmp concepts
Determine which week of the month the day is
CertBot 更新证书失败解决
Cross domain and jsonp details
Security xxE vulnerability recurrence (XXe Lab)
【leetcode】22. bracket-generating
[leetcode question brushing day 33] 1189 The maximum number of "balloons", 201. The number range is bitwise AND
In depth MySQL transactions, stored procedures and triggers
Crawler notes: improve data collection efficiency! Use of proxy pool and thread pool
STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
VPP性能测试
IDEA编译JSP页面生成的class文件路径
Hashlimit rate control
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"?
hashlimit速率控制
Yyds dry goods inventory web components series (VII) -- life cycle of custom components
Le compte racine de la base de données MySQL ne peut pas se connecter à distance à la solution