摘要: 依然要用到均值不等式的知识,证明在这里:http://www.cnblogs.com/xtx1999/p/4913067.html 因为知道了两个数的最大公约数和最小公倍数,于是就知道了两个数的乘积。根据均值不等式,两个数和一定两数和一定,它们两个越接近乘积越大。所以乘积一定时,它们越接近和就越小所以枚举即可。 #include #include using namespa... 阅读全文
posted @ 2015-10-27 07:47 Martrix99 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 要用到一个基本的均值不等式:(a+b)^2>=4*a*b 很好证明,把4ab移到左侧,完全平方打开,然后合并。等号在a=b时成立。所以可以知道,和一定的两个数,越接近乘积越大。所以从S/2开始向两端枚举即可。O(n*sqrt(n)) 当然还有一种简单的方法先用筛法筛出数据范围内的素数,枚举时直接判断... 阅读全文
posted @ 2015-10-27 07:37 Martrix99 阅读(1252) 评论(0) 推荐(0) 编辑
摘要: 因为都不同,所以从1开始,然后是2、3、4……所以就是等差数列求和………#include#includeusing namespace std;int n;int main(){ scanf("%d",&n); printf("%d",(1+n)*n/2);} 阅读全文
posted @ 2015-10-27 07:31 Martrix99 阅读(294) 评论(0) 推荐(0) 编辑