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