题面 题意: 1:将 [l,r]区间内的所有数变为当前权值的正约数的个数,即:\(a_i\)=d(a_i) 2:求\(\displaystyle \sum_{i=l}^{r}a_{i}\) 前置芝士: 求\(d(i)\)的话,可以先康康这个题P6810 「MCOI-02」Convex Hull 凸包 这个题中就是线性筛处理出了每个数的约数的个数 这里安利一个同机房dalao的博客 我们就可以发现每个数的约数的个数就可以处理出来了 void make_d(){ d[1] = f[1] = 1; for(int i = 2; i <= M - 5; i ++...