1001
1002
題意:給定一個n個點的完全圖,邊權為lcm(i+1,j+1),求最小生成樹。
考慮這樣一個構造方法
所有數字都向自身的最小質因數連邊
這樣可以保證每個數字的貢獻都是其本身,達到了理論最小。(lcm一定比自己本身要大)
然后就有了k棵以質數為根的樹
然后考慮連接這k棵樹
顯然質數之間的lcm就是它們的乘積
所以所有根都和2連邊即可
考慮計算答案
記\(tot\)為2到n+1的所有素數的和
考慮如何計算tot
這是一個min25模板題,不再贅述
實際上,也可以通過分塊打表的方法通過此題。
1003
簽到題
顯然最后一個用距離出口最近的即可。
1007
題意:給出一個字符串,將其重新排列,使得該字符串的border最大
比較顯然的構造是出現次數最多的字母全部放在開頭,然后border就是該字母出現的次數
由border的簡單性質可知答案不可能比這個大,因此具有正確性
1010
簽到題
按照題意模擬即可
1013
題意:給定一個多項式,操作n-1次。第k次操作為令\(f(x)=B_k*f'(x)+C_k*f(x)\)。求操作n-1次后的多項式。
考慮算貢獻
顯然原多項式的高次項會對最終答案的低次項產生貢獻
考慮怎么算xk對xi的貢獻
首先貢獻系數的話
如果\(bk=ck=1\)的話顯然就是一個NE-Latice-Path問題
貢獻系數也就是一個組合數
既然有了系數
那么只需要模擬NE-Latice-Path的計算過程
設一個生成函數#h_k(x)=B_k*x+C_k
把這n-1個單項式乘起來即可得到關於貢獻系數的多項式
這一步需要通過類似線段樹分治的分治NTT實現
這里一定要注意寫的常數小一些
不要采取封裝多項式的寫法
這里我采用了類似
除此之外還要考慮求導本身產生的系數
簡單推導發現\(x^k\)對\(x^i\)產生的貢獻是\(\frac{k!}{i!}\)
整理一下
設:
最終多項式的系數為\(f_k\)
求導k次的貢獻系數為\(g_k\)
發現這是一個下標差為定值的的卷積
是一個經典套路題
翻轉數組后即可轉化為正常形式的卷積
大力NTT即可
總復雜度\(O(nlog^2n)\)