zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    字符编码总结
    文件操作总结(2)
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C. Five Dimensional Points 暴力
    UVA 10048
    UVA 247
    UVA 1151
    UVA 1395
    Codeforces Round #260 (Div. 1) D. Serega and Fun 分块
    Codeforces Beta Round #13 E. Holes 分块
    Codeforces Round #404 (Div. 2) E. Anton and Permutation 分块
  • 原文地址:https://www.cnblogs.com/AthosD/p/11764123.html
Copyright © 2011-2022 走看看