总结

11.7

swap

sb题没写出来可惜了

count

容易发现答案就是\(\sum_{i=1}^n\left\lfloor\frac{n}{i}\right\rfloor\)
\(\left\lfloor\frac{n}{i}\right\rfloor\)的值只有\(O(\sqrt{n})\)种,
于是这样就好了

for(long long i = 1; i <= n; i = xjc + 1){
    xjc = n / (n / i);
    ans = (ans + (long long)n / i * (xjc - i + 1)) % MOD;
}

telephone

裸的次小生成树做法

unite

显然可以通过医院设置的做法求得所有\(f_i\)表示所有点到\(i\)点的距离和
把一棵树里的所有\(f_i\)加起来除以二即为该树中任意两点距离和\(sum1\),同理另一棵树的为\(sum2\)
现在考虑多了一棵树,显然两棵树之间的边会经过\(nm\)次,第一棵树中每个点\(i\)会走\(m\)次到根的路,所以总共是\(mf_{root1}\),另外一棵树同理。
所以最终答案是\(sum1+sum2+nm+mf_{root1}+nf_{root2}\)
所以找到两棵树中\(f\)最小的点就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章