【CCPC2020網絡賽02】Graph Theory Class


原題:

題意:

給你一個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了盒盒

 

沒有代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM