codeforces 1500D - Tiles for Bathroom
这道题用到的数据结构我以前没见过,所以看题解看了半天都没看懂...QAQ
大家对普通的单调队列都不陌生,它通过部分保留队列中的元素,维护一个单调递增或递减的队列,从而实现对队列中元素的最小或最大值的\(O(1)\)查询。然而,向单调队列中插入元素时删除部分元素的操作过于依赖比较,使得我们难以扩展单调队列以使其维护队列中所有元素除最值外的其它性质。
与此不同的是,另一种实现更为精巧的队列在保留所有元素的同时具备最值查询能力,因而更具可扩展性。本题就利用了这一特点,将时间复杂度由\(O(n^2q\lg n)\)优化到\(O(n^2q)\)。
最小值队列教程:https://cp-algorithms.com/data_structures/stack_queue_modification.html
官方题解:https://codeforces.com/blog/entry/88591
我的提交记录:https://codeforces.com/contest/1500/submission/112043385
未完待续\(\dots\)

浙公网安备 33010602011771号