题目链接
题意:给你一个n个结点的完全图,结点从1~n标号,结点i和j之间的边权为lcm(i+1,j+1),问你这个图的最小生成树的边权和是多少
思路:为了方便起见,我们将节点从2~n+1编号,可以知道,当新加入的节点是个质数时,最小生成树的权值之和增加的是两倍的质数值,因为把这个点和2连起来是加的值最小的,当新加入节点的值不是质数时,权值之和增加的是这个数的值,因为前面一定会存在一个数是这个数的因子,只要把这个数和它的因子连起来,增加的值就只是这个数本身的值了。
我们可以把所有质数提一个出来,则增加的数是以3为首项,公差为1的等差数列。用等差数列求和公式,O(1)的时间求出来这个等差数列前n项和。再用min25筛,O( n**(3/4) / logn)的时间求出质数的前n项和,两项相加即可得出结果。
代码日后再补,min25筛实在是不会,还在研究中