「USACO 2020 US Open Platinum」Exercise (容斥)(DP)

传送门

  • 考虑枚举划分 S S S
    ∏ S l c m ( a 1 , a 2 , … , a k ) c o e f ( S ) \prod_Slcm(a_1,a_2,\dots,a_k)^{coef(S)} Slcm(a1,a2,,ak)coef(S)
    这个可以反演成 g c d gcd gcd
    ∏ S ∏ T g c d ( a 1 , a 2 , … , a ∣ T ∣ ) c o e f ( S ) ( − 1 ) ∣ T ∣ − 1 \prod_S \prod_Tgcd(a_1,a_2,\dots,a_{|T|})^{coef(S)(-1)^{|T|-1}} STgcd(a1,a2,,aT)coef(S)(1)T1
    考虑一个 p k p^k pk 的贡献
    ∏ p , k p i k i ∑ S ∑ T ( − 1 ) ∣ T ∣ − 1 [ m i n ( b 1 , b 2 , … , b ∣ T ∣ = k i ] c o e f ( S ) ∏ p i ∑ S ∑ T ( − 1 ) ∣ T ∣ − 1 [ m i n ( b 1 , b 2 , … , b ∣ T ∣ ≥ k i ] c o e f ( S ) \prod_{p,k} p_i^{k_i\sum_{S}\sum_T(-1)^{|T|-1}[min(b_1,b_2,\dots,b_{|T|}=k_i]coef(S)}\\\prod p_i^{\sum_{S}\sum_T(-1)^{|T|-1}[min(b_1,b_2,\dots,b_{|T|}\ge k_i]coef(S)} p,kpikiST(1)T1[min(b1,b2,,bT=ki]coef(S)piST(1)T1[min(b1,b2,,bTki]coef(S)
    考虑 d p dp dp 一下
    ∑ S ∑ T ( − 1 ) ∣ T ∣ − 1 [ m i n ( b 1 , b 2 , … , b ∣ T ∣ ≥ k i ] c o e f ( S ) \sum_{S}\sum_T(-1)^{|T|-1}[min(b_1,b_2,\dots,b_{|T|}\ge k_i]coef(S) ST(1)T1[min(b1,b2,,bTki]coef(S)
    就是我们钦定 ∣ T ∣ |T| T 个置换长度为 p i k i p_i^{k_i} piki 的倍数,剩下的随便置换,这个可以组合数算
    我们记 f i f_{i} fi 表示当前数为 p k ∗ i p^k*i pki 时的带系数方案数,当然,也可以直接 exp ⁡ \exp exp(如果有逆元的话)
    exp ⁡ ( ∑ i ≥ 1 − x i i p k ) \exp(\sum_{i\ge 1}-\frac{x^i}{ip^k}) exp(i1ipkxi)
    现在的复杂度是 ∑ ( n i ) 2 = O ( n 2 ) \sum (\frac{n}{i})^2=O(n^2) (in)2=O(n2)
    C o d e Code Code
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值