• 【SDOI2017】套路总结


    1

    第一题是裸的反演;

    [egin{align} Ans&=prod_{i=1}^nprod_{j=1}^ma[(i,j)]\ &=prod_{d=1}^na[d]^{f(d)}\ f(d)&=sum_{i=1}^{lfloorfrac{n}{d} floor}lfloorfrac{n}{id} floorlfloorfrac{m}{id} floormu(i) end{align}]

    考虑更换为枚举(i*d)
    那么就有,

    [egin{align} Ans&=prod_{k=1}^nsum_{d|k}a[d]^{lfloorfrac{n}{k} floorlfloorfrac{m}{k} floormu(frac{k}{d})}\ &=prod_{k=1}^n(sum_{d|k}a[d]^{mu(frac{k}{d})})^{lfloorfrac{n}{k} floorlfloorfrac{m}{k} floor} end{align}]

    显然,我们可以预处理((sum_{d|k}a[d]^{mu(frac{k}{d})})),于是就能分块做了。

    2

    如果一个结点与其父亲颜色不同,就给他打上标记1。

    3

    至少存在一个=存在=所有-不存在;
    我们用dp来进行序列计数,(f[i][j])表示前i个数的前缀和%p的值为j的方案数。
    显然可以矩阵乘法。

  • 相关阅读:
    SQL注入漏洞
    回发或回调参数无效
    ListView绑定DataSet
    SQL注入漏洞全接触入门篇(二)
    条件运算符
    安全类
    ASP.NET常用代码集锦
    活动目录操作类
    x60系统安装步骤
    程序员是如何喝酒的
  • 原文地址:https://www.cnblogs.com/hiweibolu/p/6751764.html
Copyright © 2020-2023  润新知