總結

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\)最小的點就行了。

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