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

傳送門

  • 考慮枚舉劃分 SS
    Slcm(a1,a2,,ak)coef(S)\prod_Slcm(a_1,a_2,\dots,a_k)^{coef(S)}
    這個可以反演成 gcdgcd
    STgcd(a1,a2,,aT)coef(S)(1)T1\prod_S \prod_Tgcd(a_1,a_2,\dots,a_{|T|})^{coef(S)(-1)^{|T|-1}}
    考慮一個 pkp^k 的貢獻
    p,kpikiST(1)T1[min(b1,b2,,bT=ki]coef(S)piST(1)T1[min(b1,b2,,bTki]coef(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)}
    考慮 dpdp 一下
    ST(1)T1[min(b1,b2,,bTki]coef(S)\sum_{S}\sum_T(-1)^{|T|-1}[min(b_1,b_2,\dots,b_{|T|}\ge k_i]coef(S)
    就是我們欽定 T|T| 個置換長度爲 pikip_i^{k_i} 的倍數,剩下的隨便置換,這個可以組合數算
    我們記 fif_{i} 表示當前數爲 pkip^k*i 時的帶係數方案數,當然,也可以直接 exp\exp(如果有逆元的話)
    exp(i1xiipk)\exp(\sum_{i\ge 1}-\frac{x^i}{ip^k})
    現在的複雜度是 (ni)2=O(n2)\sum (\frac{n}{i})^2=O(n^2)
    CodeCode
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章