原题 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的值,其中k mod i表示k除以i的余数. \(\sum^n_{i=1}k\%i\) \(=\sum^n_{i=1}k-\lfloor k/i \rfloor*i\) \(=n*k-\sum^n_{i=1}\lfloor k/i \rfloor*i\) \(\lfloor k/i \rfloor\)只有\(\sqrt k\)个取值 证明: 对于所有\(>\sqrt k\…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=46954 题意:f(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n,输入n, k,求f(n, k). 思路:n>k的部分都为k,直接判断即可.n < k时,k mod n = k - k / n * n,观察发现在一定的区间[lhs, rhs]内k/i的值不变.那么就可以直接分块了, k/lhs * lhs + k…
题目描述 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数.例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7 输入 输入仅一行,包含两个整数n, k. 输出 输出仅一行,即j(n, k). 样例输入 5 3 样例输出 7 题解 分块 首先当i>k时,k%i=k,所以如果n>k,直接把答案预先加…