详细的题解见这里. 图片转自上面的博客 假设我们已经推导出来x在处取得最小值,并且注意到这个点是位于两个整点之间的,所以从这两个整数往左右两边枚举b就能找到b+c的最小值. 其实只用往一边枚举就够了,由于对称性,我们不妨假设b ≤ c,那么只要让b从2a开始递减枚举即可. #include <iostream> using namespace std; long long a, i; ;)%(i-a))i--;cout<<(i*i+)/(i-a)<<endl;};} 代…
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 题意:求sigma (gcd (i , j)) 1 <= i < j <= n 和POJ 2480类似,如果枚举j,求的话,还是会TLE的... 考虑sigma(gcd (i , n)) = sigma (d * phi[n / d]) d | n. 做法同样是先预处理出phi,然后枚举gcd = d. O(n)预处理,O(1)查询 #i…