UOJ169. 【UR #11】元旦老人与数列
线段树
((٩(//̀Д/́/)۶))这是我见过的最恶心的线段树,最开始还以为有什么巧妙的办法,所以这个 blog 要比其他的长点,大家耐心<(▰˘◡˘▰)>点看
迷之元旦老人的背景就不管了,就是给你一个数列,4种操作:一段区间加个数,一段区间所有值与一个值取个max,区间查询最小值,因为B数组是单调递减的(与A数组取min),B区间的查询就是求A的历史最小值
暴力 O(NM) 能得十分(好少),还有二十分没有 max 操作,线段树模板题,多记一个历史最小值就行。
后面的分数注定这是一道神题 \(▔^▔)/,其实写法很暴力,主要是复杂度的证明很麻烦,因为正解感觉很多都是暴力修改,好像过不了的样子。
题解
我们定义一个函数 f(t) 表示 t 这棵线段树的势能(势能想表达的就是线段树上节点的值的大小的混乱情况,势能越大,也就越混乱,简单表达为:
线段树上就不只维护