前言
众所周知,这道题一点都不恶心,细节一点都不多,推荐大家水一水,有益健康。
做题日寄
06-24 17:10:35:在学校先写了一个千疮百孔的只有4个操作的程序。具体问题就不一一罗列了(主要是我也忘了)。
06-24 21:32:25:四色球。相比于上次,写完了die码。平衡树不是线段树,不能只考虑两个儿子,还要加上它自己。
06-24 21:38:03:上一次的结果先看到RE,主要解撅了直接开新的点空间不够的问题,要回收利用以前删掉的点,用队列实现。
06-26 11:12:36:忘寄去掉freopen。
06-26 11:13:02:发现区间翻转,它的最大前缀和和最大后缀和要交换,解决WA力。
06-28 13:50:15:发现MLE是因为用重复的空间没有初始化,导致叶子节点左右儿子没有清零,递归死循环爆栈,结果T了。
省略一堆:我第二个点运行了3秒多,开始疯狂卡常,卡到1.6~1.8秒左右。(偷偷开过一次O2)
06-28 22:48:06:最后发现,在插入和初始化平衡树的时候,如果暴力一个一个叠加,效率是 Θ(n),但用分治效率是 Θ(logn),时间就可以优化到1秒以内。
后面的提交就是整理一下代码。
不过卡常的过程中学到一些卡常小常识。
有一个彩蛋
听我说撅撅你