• 省选模拟75 题解


    A. 比特币

    考虑把第 $k$ 位为 $1$ 的问题放在模 $2^{k+1}$ 意义下考虑,这样问题就简单了。

    因为若干个循环的贡献被强制放在了同一段上考虑。

    然后随便弄个数据结构维护一下即可。

    B. 测试

    类似约数个数和一题,可以用类似的构造方法来展开 $d(i*j*k)$ 这个函数。

    对于每个质因子 $p^c$,目的是用 $c_1+c_2+...+c_k$ 凑出 $(c+1)$ 来然后乘在总的系数里面。

    对于 $k=2$ 的形式,可以直接枚举约数,然后用 $gcd=1$。

    对于 $k>2$ ,仍然是类似的,然后此时的要求是只有一个位置有值,其他位置均为 $1$。

    其实也就是说任意两者的 $gcd$ 均为 $1$。

    所以对于 $k=3$,有三个布尔表达式。

    直接用莫比乌斯反演展开这三个表达式。

    然后化一化式子可以得到一个 $(i,j),(j,k),(i,k)$ 分别相关的式子。

    然后到这里很神的做法是,把这种相关关系建图出来。

    然后三者两两相关,其实就是构成一个三元环,所以做一下三元环计数即可。

    C. 光图

    连通块个数的 $k$ 次方的组合含义其实就是选中 $k$ 个可重的代表点,这个玩意并不容易计数。

    考虑将 $x^k$ 通过第二类斯特林数展开为下降幂的形式,然后这个下降幂其实就是组合数乘阶乘。

    阶乘可以提到外面去,然后现在的组合含义 $x$ 选 $k$ ,可以按照顺序来进行 dp,是容易计数的。

    然后本题是一个连通块问题,首先处理出大小为 $i$ 的不同连通块个数。

    因为若干个连通块可以随意组成一个任意图,所以设一设指数生成函数可以得到这个数组。

    然后就可以得到一个暴力的 $dp$,因为有同层的转移的,这就需要分治做法,会多一个 $log$。

    一个很套路的优化办法是,先只考虑不同层的转移。然后因为并不需要具体区分在哪一层转移的,所以直接给最终值乘一个系数即可得到答案。

  • 相关阅读:
    pip几个国内速度非常快的源
    【模型推理】ncnn 模型转换及量化流程
    Could not load library cudnn_cnn_infer64_8.dll. Error code 126 Please make sure cudnn_cnn_infer64_8.
    基于ncnn的iOS端深度学习算法部署及应用
    AlexNet网络结构与pytorch代码实现
    tensorflow 转coreml
    模型转换工具
    Mac Ideal 操作快捷键
    pom 添加远程镜像源
    java wrapper
  • 原文地址:https://www.cnblogs.com/skyh/p/12740970.html
Copyright © 2020-2023  润新知