洛谷 - P1160 - 队列安排

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

首先想到就是暴力模拟,用双端队列模拟插入,但是删除就很麻烦,肯定会超时的。

可以考虑标记每次插入同学的“相对坐标”,得出一个从左往右逐个删除的顺序。误!2.直接用set查询是不是要删除就可以了。

这样还要预防没东西删除的情况,所以还要记录待删除的人在不在?误!1.直接对删除指令unique一次就可以了。

所以最终的复杂度当然是nlogn的。

但是这个怎么会是队列呢?明明要用链表的吧?洛谷的标签蛮有毒的。

 

看了一下别人的思路,原来还有用数组建立链表,然后删除的时候复杂度就是O(1)的,比我少了一个log呢。???3.我为什么要用set记录哪些要删除?直接删了不好吗?我可能要去睡觉了。

 

这个线性数据结构的专题还没做完呢。为了开一波后面的高级数据结构先莽一波。

 keng

posted @ 2019-01-25 05:43  韵意  阅读(162)  评论(0编辑  收藏  举报