zoukankan      html  css  js  c++  java
  • liu_runda 题乱写

    考虑使用原根将题目中的乘法转化为加法,那么这样直接可以得到一个 ( m{Theta(mod^3 log m)}) 的做法

    首先根据期望的统计方式把题目变成统计多少种方案满足结果是 (x)

    统计下来每个数的出现次数,得到一个多项式 (sum_{i=0}^{mod-1} a_ix^i)

    那么矩阵快速幂里面的加法就可以转成多项式次数的加法,同时也可以通过这个方式统计方案数

    然后 (mod) 很小,那么可以直接冲一个 (n^2) 的多项式乘法,指数上记得对 (mod-1) 取模就行了

    熟练剖分

    (f_{x,h}) 表示以 (x) 为根的子树里面 (h) 为轻边数量最大值的方案数

    然后每次计数的时候钦定一个子树的深度然后乘起来剩下的

    在归并子树的过程中,给 dp 数组多加一维,表示是否已经选择过重儿子即可。

    时间复杂度 (Theta(n^2)),一般的暴力转移的实现优化之后不太好卡,也可以前缀和优化转移,那样实现难度不知道要高到哪里去

  • 相关阅读:
    [C#1] 2类型基础
    [C#2] 5迭代器
    [C#1] 6方法
    [C#1] 8数组
    [C#1] 12特性
    [C#1] 10事件
    [C#2] 2匿名方法
    实用代码JavaScript实用小函数一枚(深入对象取值)
    [C#1] 11接口
    实用代码C#获取本机网络适配器信息及MAC地址
  • 原文地址:https://www.cnblogs.com/yspm/p/14855408.html
Copyright © 2011-2022 走看看