原題:
題意:
給你一個n個結點的完全圖,結點從1~n標號,結點i和j之間的邊權為lcm(i+1,j+1),問你這個圖的最小生成樹的邊權和是多少
為方便討論,現在給所有結點的標號都+1,於是標號范圍變為2~n+1,結點i和j之間的邊權變為lcm(i,j)
性質1:
lcm(i,j)>=i且lcm(i,j)>=j
先考慮一個特殊情況,如果i是質數
此時情況有2種,要么i|j,那么lcm(i,j)=j,否則lcm(i,j)=i*j
顯然i*j也是i的倍數,因此只需要讓i和一個最小的數連就行了,最小就是2
一般情況,如果i是合數,那么由於lcm(i,j)>=i,因此反正怎么選都不可能小於i,直接讓i跟一個因子連就行了
這樣怎么能保證連出來是一個樹呢
性質2,一種構造樹的方法:
讓每個結點i都跟標號小於i的某點連邊,這樣可以歸納地證明連出來是一個樹
2肯定比除了2的質數小,合數的因子肯定比它自己小,因此上面的連法保證得到一個樹
於是對於質數,和2連邊,lcm=2*i,對於合數,和一個因子連,lcm=i
最后的總邊權等於(2+n+1)*n/2+∑p-2-2,∑p是小於n+1的所有質數的和,-2-2是因為2不會和自己連
用min25篩出質數和即可
求質數和我還不會,問了隊友(清歡)直接就知道可做,然后寫完就A了盒盒
沒有代碼