2019.10.29题解

写在前面:

有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

原文地址:https://www.cnblogs.com/AthosD/p/11764123.html