Codeforces Round 911 (Div. 2)
https://codeforces.com/contest/1900
D. Small GCD
题意
定义 为 中较小两数的 。给定数组 ,求所有三元组的 之和。
数据范围:。
题解
给 排序,依次枚举。我们维护当前所有数的二元组 之和,当前枚举到的数是最大数,它的贡献就是维护的这个值。
我们考虑如何维护这个值:这是一个经典的问题。我们维护 表示 的倍数有多少个。对于当前的数 ,我们从大到小枚举因子 。设 的 的数量为 ,那么有 。后面减的部分可以在每次处理完 后对因子减去贡献。
E. Transitive Graph
题意
给出一个图,要求图的传递闭包中点权和最小的简单最长路。
题解
可以用强连通分量
缩点,可以发现每个强连通分量在传递闭包中是一个完全图,因为我们需要的是最长路所以只要走到这个强连通分量就必须走完分量中的所有点。
然后跑个DAG
上的DP
就好了。
Codeforces Round 911 (Div. 2)
https://je3ter.github.io/2023/11/30/ACM/Codeforces Round 911 (Div. 2)/