您的位置:首页 > 大数据 > 人工智能

ZOJ 3175 Number of Containers 【数学图像性质(一个常见算式的经典计算)】

2018-01-26 10:30 435 查看
传送门

// 按照题意出发我们可以很容易的推导出最后求

(n/1 + n/2 + …. + n/n) - n.

// 可以记一下这个算式的特征, 因为这个还是比较经典的, 后面可能会遇到的.

那么如何求了,暴力肯定不行, 又是一个调和级数无通项, 所以只有从函数图像入手, y = n / x , 可以发现这幅图是关于x = y 对称的, 所以我们只需要算一遍√n的ans, 然后*2, 由于x == y 是被重复算了, 再减去即可.

AC Code

void solve()
{
ll n ;
cin >> n ;
ll ans = 0;
for (ll i = 1 ; i*i <= n ; i ++) {
ans += n/i;
}
ans *= 2; ll k = sqrt(n);
ans -= k*k + n;
cout << ans << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: