1. 程式人生 > >洛谷 - P1160 - 隊列安排

洛谷 - P1160 - 隊列安排

高級 雙端隊列 別人 線性 同學 睡覺 記錄 安排 隊列

https://www.luogu.org/problemnew/show/P1160

首先想到就是暴力模擬,用雙端隊列模擬插入,但是刪除就很麻煩,肯定會超時的。

可以考慮標記每次插入同學的“相對坐標”,得出一個從左往右逐個刪除的順序。誤!2.直接用set查詢是不是要刪除就可以了。

這樣還要預防沒東西刪除的情況,所以還要記錄待刪除的人在不在?誤!1.直接對刪除指令unique一次就可以了。

所以最終的復雜度當然是nlogn的。

但是這個怎麽會是隊列呢?明明要用鏈表的吧?洛谷的標簽蠻有毒的。

看了一下別人的思路,原來還有用數組建立鏈表,然後刪除的時候復雜度就是O(1)的,比我少了一個log呢。???3.我為什麽要用set記錄哪些要刪除?直接刪了不好嗎?我可能要去睡覺了。

這個線性數據結構的專題還沒做完呢。為了開一波後面的高級數據結構先莽一波。

洛谷 - P1160 - 隊列安排