写在前面:
有6天没更博客了,一直在学Sam,这几天的考试似乎不太理想,濒临被卡线,应该Sam是我联赛前学的最后一个省选知识点吧,以后的重心还是要放到联赛上,做一做杂题3还有线段树进阶以及期望Dp,尽量联赛和高手之间的分差小一点吧
A. 序列
标签:
BIT
题解:
设f[i]为a的前缀和,g[i]为b的前缀和,考虑把f排序,BIT下标g,维护i的最小值即可
B. 二叉搜索树
标签:
树的前序遍历+区间Dp
题解:
原来有道题是中序遍历,考场上啥也不会,Dp都想不到,这道题想到是Dp了,但是Dp定义一点思路也没有,成功爆零
f[i][j]代表处理了[i,j]区间的最小代价,考虑每次加一个根,枚举根是谁来转移:
f[i][j]=min{f[i][k-1]+f[k+1][j]+sum[j]-sum[i-1]}
不难发现决策点是单调的,因为加入i-1根不会右移,加入j+1根不会左移,
也就是说f[i][j]的决策点在[f[i][j-1],f[i+1][j]]区间内
C. 走路
标签:
分治消元
题解:
大部分期望题逆推都比较简单,设f[i]代表到i的期望步数:
$ f[t]=0 $
$ f[i]=1+sum_{(i,j)in edge}f[j] $
最暴力的解法就是对于每一个都Gauss一遍,复杂度$ O(n^4) $
但是我们发现对于i,j两个不同的点,不一样的方程只有1个,用分治消元解决即可
复杂度$ O(N^3) $,证明需要用到主定理,要是不想在最后回带的话复杂度多一个log