SHOI2009 會場預約 線段樹

2021-08-24 23:42:12 字數 2028 閱讀 7522

pp大廈有一間空的禮堂,可以為企業或者單位提供會議場地。這些會議中的大多數都需要連續幾天的時間(個別的可能只需要一天),不過場地只有乙個,所以不同的會議的時間申請不能夠衝突。也就是說,前乙個會議的結束日期必須在後乙個會議的開始日期之前。所以,如果要接受乙個新的場地預約申請,就必須拒絕掉與這個申請相衝突的預約。 一般來說,如果pp大廈方面事先已經接受了乙個會場預約,例如從10日到15日,就不會在接受與之相衝突的預約,例如從12日到17日。不過,有時出於經濟利益,pp大廈方面有時會為了接受乙個新的會場預約,而拒絕掉乙個甚至幾個之前預訂的預約。 於是,禮堂管理員qq的筆記本上筆記本上經常記錄著這樣的資訊: 本題中為方便起見,所有的日期都用乙個整數表示。例如,如果乙個為期10天的會議從「90日」開始到「99日」,那麼下乙個會議最早只能在「100日」開始。 最近,這個業務的工作量與日俱增,禮堂的管理員qq希望參加shtsc的你替他設計一套計算機系統,方便他的工作。這個系統應當能執行下面兩個操作: a操作:有乙個新的預約是從「start日」到「end日」,並且拒絕掉所有與它相衝突的預約。執行這個操作的時候,你的系統應當返回為了這個新預約而拒絕掉的預約個數,以方便qq與自己的記錄相校對。 b操作:請你的系統返回當前的仍然有效的預約的總數。

輸入格式:

輸入檔案的第一行是乙個整數n,表示你的系統將接受的操作總數。 接下去n行每行表示乙個操作。每一行的格式為下面兩者之一: 「a start end」表示乙個a操作; 「b」表示乙個b操作。

輸出格式:

輸出檔案有n行,每行一次對應乙個輸入。表示你的系統對於該操作的返回值。

輸入樣例#1:複製

6

a 10 15

a 17 19

a 12 17

a 90 99

a 11 12

b

輸出樣例#1:複製

002

012

n< = 200000

1< = start end < = 100000

思維難度:省選

**難度:省選

#include#includeusing namespace std;

const int maxn=200005;

const int inf=maxn*2;

int n,des[maxn];

struct treet[maxn*4];

struct nodeque[maxn];

inline int read()

while(c<='9'&&c>='0')

return x*f;

}inline int lson(int rt)

inline int rson(int rt)

inline int mn(int x,int y)

inline void pushdown(int rt)

inline void update(int l,int r,int x,int rt)

pushdown(rt);

int mid=t[rt].l+t[rt].r>>1;

if(l<=mid)update(l,r,x,lson(rt));

if(r>mid)update(l,r,x,rson(rt));

pushup(rt);

}inline int query(int l,int r,int rt)

pushdown(rt);

int mid=t[rt].l+t[rt].r>>1,ans=inf;

if(l<=mid)

if(r>mid)

return ans;

}inline char getc()

return c;

}int main()

build(1,200000,1);

for(int i=n;i>=1;i--)

} for(int i=1;i<=n;i++)

else

} return 0;

}

SHOI2009 會場預約

首先我們要知道,滿足什麼性質的線段,才與當前這個插入的線段有交集呢?那就是 線段的左端點在 1,r 但是線段的右端點大於l,所以,我們直接把線段的左端點當成下標,值當成r,插入到線段樹當中即可。然後刪除操作 只要在區間 1,r 並且區間max大於等於當前插入的線段的左端點,那麼就去刪除即可。同時線段...

SHOI2009 會場預約

題意 支援操作 按順序在數軸上插入一條線段,刪除並詢問所有與這條線段有交的線段個數。詢問當前數軸上一共有多少條線段。想做了很久的題 觀察到和線段 l i,r i 有交的線段,實際上就是右端點 ge l i 並且左端點 le r i 的一些線段。我們可以把所有線段按照右端點第一關鍵字,左端點第二關鍵字...

SHOI2009 會場預約

orz 據說這個題有四種寫法 我孔乙己表示只會一種。暫時的 pp大廈有一間空的禮堂,可以為企業或者單位提供會議場地。這些會議中的大多數都需要連續幾天的時間 個別的可能只需要一天 不過場地只有乙個,所以不同的會議的時間申請不能夠衝突。也就是說,前乙個會議的結束日期必須在後乙個會議的開始日期之前。所以,...