NOIp2016 蚯蚓 佇列

2022-03-13 09:48:07 字數 771 閱讀 1367

link

這道題是個\(zz\)題

我們考慮如何得部分分,即十分\(zz\)的\(\theta((m+n)log(m+n))\),窩萌發現這個複雜度似乎可以接受,但是會爆是真的,所以每當這個時候我們就需要思考問題內部的單調性。我們發現其實對於兩條蚯蚓\(a\)和\(b\),設它們的長度為\(l_a\)和\(l_b\),假設他們滿足\(l_a < l_b\),那麼他們都砍去\(p \times 100%\)後坑定會有\(l_ > l_\),\(l_ > l_\)……那麼從技術層面來講,他們都會加\(mq-q\)……所以最終來講,當前大於之後也一定大於……所以用三個佇列維護一下即可\(qwq\)

#include #include #include #include #define maxn 1000100

using namespace std ;

queueq, q1, q2 ; int cnt, l, r ;

int now, h1, h2, h3 ; double u, v, p ;

int mark = 0, a[maxn], n, m, h, t, i, ans[maxn << 3] ;

inline int qr()

inline bool cmp(int j, int l)

int main()

putchar('\n') ;

while(!q.empty() || !q2.empty() || !q1.empty())

return 0 ;

}

noip2016 蚯蚓 佇列

傳送門 樣例1 3 7 1 1 3 1 3 3 2 樣例2 3 7 1 1 3 2 3 3 2 樣例3 3 7 1 1 3 9 3 3 2 樣例1 3 4 4 4 5 5 6 6 6 6 5 5 4 4 3 2 2 樣例2 4 4 5 6 5 4 3 2 樣例3 空行 很顯然是一道優先佇列的題0 0...

noip2016 蚯蚓 佇列

傳送門 樣例1 3 7 1 1 3 1 3 3 2 樣例2 3 7 1 1 3 2 3 3 2 樣例3 3 7 1 1 3 9 3 3 2 樣例1 3 4 4 4 5 5 6 6 6 6 5 5 4 4 3 2 2 樣例2 4 4 5 6 5 4 3 2 樣例3 空行 很顯然是一道優先佇列的題0 0...

noip2016 蚯蚓 單調佇列

去年提高組的day2t2,很容易有種讓人看到就會想到用堆的做法,但是堆的時間複雜度顯然是不夠的 雖然可以拿到85分,暴力打得好的話 所以就像之前做那道合併果子一樣的,想到了單調佇列的做法。可以把原來的蚯蚓按照從大到小的排序放在第乙個佇列裡面,然後每一次切蚯蚓,把第一部分放在第二個佇列中,第二部分放第...