洛谷2161 會場預約 題解

2022-05-20 12:21:46 字數 548 閱讀 5264

好吧,用stl水過了一道題。

顯然,每一次進行修改之前的所有預約一定是沒有互相覆蓋的。

我們用set保留所有的預約,這樣在詢問時只要輸出set的size就行了

對於每次的新預約,我們就先找到右端點大於該區間左端端點的區間,然後乙個乙個刪除矛盾的預約就行了

複雜度大概為o(n(logn)^2)

(bzoj上這道題居然要許可權,太噁心了。)

# include# include

# include

# include

using

namespace

std;

struct

xianduan

};set

s;int

n;char

c;int

main());

while(it!=s.end() && r>=it->l));

}cout

s.insert((xianduan));

}else cout}

return0;

}

題解 洛谷P2161 會場預約(線段樹)

先說一下這道題的解題思路,我們使用離線操作的做法。記錄讀入的資料,把開始結束日期存在結構體裡,並記錄是a操作還是b操作。開乙個陣列記錄染色情況 乙個cnt陣列記錄第幾個操作推掉了幾個預約,讀入後我們倒著迴圈進行查詢,如果讀入的是b就跳過,如果是a的話就將開始到結束日期的所有點染成當前序號的顏色。如果...

洛谷P2161 SHOI2009 會場預約

pp大廈有一間空的禮堂,可以為企業或者單位提供會議場地。這些會議中的大多數都需要連續幾天的時間 個別的可能只需要一天 不過場地只有乙個,所以不同的會議的時間申請不能夠衝突。也就是說,前乙個會議的結束日期必須在後乙個會議的開始日期之前。所以,如果要接受乙個新的場地預約申請,就必須拒絕掉與這個申請相衝突...

洛谷P2161 SHOI2009 會場預約

題目大意 有兩種操作 a l r 表示加入區間 l,r 並把與之衝突的區間刪除,輸出刪除的區間的個數,區間 a 於區間 b 衝突當且僅當 a cap b not varnothing b 輸出現在有幾個區間 題解 用 stl 的 set 定義區間 a卡點 無 c code include inclu...