zoukankan      html  css  js  c++  java
  • 11.15考试

    T1
    树剖+线段树;
    线段树取模维护两个值,最大值和区间和;
    T2
    容斥原理;
    设x的质因数集合为{2,3,4};
    {s} 表示有因数s的数的个数;
    那么,与x互质的数为{1}-{2}-{3}-{4}+{2,3}+{2,4}+{3,4}-{2,3,4};
    T3
    $f[i] = displaystylesum_{j = 0}^{i}{f[j]+iover{i+1}} $

    先提出一个 (f[i]+i) 来,变成:

    (f[i] = displaystyle {f[i] + i over i+1} sum_{j = 0}^{i-1}{f[j] + iover{i+1}})

    有点难看,先把所有的 $f[i] $ 都移到一边变成:

    ({iover i+1} f[i] = {iover {i+1}} + displaystyle sum_{j = 0}^{i-1}{f[j] + iover{i+1}})

    两边同时乘以 (i+1) 可得:

    (if[i] = i + displaystylesum_{j=0}^{i-1} f[j] + i)

    在把里面求和中的 (i) 提出来可以变成:

    (if[i] = i(i+1) + displaystylesum_{j=0}^{i-1} f[j])

    发现不好在继续化简了,这时候我们需要用到一个小技巧,作式相减法。

    (i-1) 带入原式可得:

    ((i-1) f[i-1] = i(i-1) displaystylesum_{j=0}^{i-2} f[j])

    把这两个式子相减可得:

    (if[i] - (i-1)f[i-1] = i(i+1)- i(i-1) + f[i-1])

    继续化简可得:

    (if[i] - if[i-1] = 2i)

    所以: (f[i] - f[i-1] = 2)

    综上 (f[i] = 2i)

  • 相关阅读:
    腾讯//全排列
    腾讯//全排列
    腾讯//子集
    腾讯//子集
    腾讯///括号生成
    腾讯///括号生成
    腾讯//二叉树的最近公共祖先
    腾讯//二叉树的最近公共祖先
    腾讯//二叉搜索树的最近公共祖先
    腾讯//二叉搜索树的最近公共祖先
  • 原文地址:https://www.cnblogs.com/Aswert/p/13992241.html
Copyright © 2011-2022 走看看