zoukankan      html  css  js  c++  java
  • 「考试」省选69

    T2强制在线挂了qvq,结果是因为初值写错了,T3数组开小掉了10pts
    其他倒还好。

    T1
    秀最靓的操作,写最短的代码。
    其实就是我们按照(kruscal)考虑的话,我们可以把最小生成树上的边都列出来。
    这是一个单调不讲的序列。
    把最后一个和前面(n-2)个分别考虑,然后一个一个的削减(w[n-1])增加(w[1...n-2])就可以了。
    这个过程是(O(1))的。

    T2
    板子题,用(LCT)维护最大独立集的(dp)即可。
    具体来说对于虚实子树分别维护一下当前确定区间的左右端点(链的顶底)是否被选就可以了,虚子树的话就分别按照方程维护对选和不选的最优贡献即可。

    T3
    组合数学+容斥原理+生成函数
    (f_i)为恰好分成了(i)段的方案,(g_i)为至多分了(i)段的方案。
    那么求出(g_i)然后二项式反演即可。
    考虑(g_i)怎么求。
    设:

    [F(x)=prodlimits_{i=1}^{n} sumlimits_{k=1}^{a_i}inom{a_i-1}{k-1}frac{1}{k!} ]

    直接分治(NTT)即可。
    那么:(f_i=i![x^i]F(x))
    这样就可以直接用二项式反演了,反演的过程可以发现是卷积形式。
    再次卷积即可。
    复杂度(O(mlogmlogn))

  • 相关阅读:
    9-29 函数嵌套及作用域链
    9-29 函数进阶_命名空间和作用域
    9-28 函数
    9-27 文件的”改”、删、重命名
    9-26 联合文件的登录注册
    9-26 文件操作一些功能详解
    9-26 文件操作
    9-26 复习数据类型
    9-25 集合
    python基础day7_购物车实例
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12693424.html
Copyright © 2011-2022 走看看