分析
实际上就是求重心坐标。
假设第 \(i\) 本书的重心为 \(g_i\) ,不难发现:
\[\frac{g_2+g_3+...+g_n}{n-1}+g_1=0\]
\[\frac{g_2+g_3+...+g_n}{n-1}-g_1=M\]
于是有:
\[g_n=\frac{M}{2}\sum^{n}_{i=1}{\frac{1}{i}}\]
但此题还要用到调和计数这个东西,由于窝太菜了,所以自行百度。
代码
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define il inline
#define re register
#define tie0 cin.tie(0),cout.tie(0)
#define fastio ios::sync_with_stdio(false)
#define File(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout)
using namespace std;
typedef long long ll;
template <typename T> inline void read(T &x) {
T f = 1; x = 0; char c;
for (c = getchar(); !isdigit(c); c = getchar()) if (c == '-') f = -1;
for ( ; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
x *= f;
}
ll n, m;
double ans, eps = 1e-6;
int main() {
read(n), read(m);
if (n <= 1e7)
for (int i = 2; i <= n*2; i += 2) ans += 1.0/i;
else ans += (log(n) + 0.5772156649) / 2;
ans *= m; ans -= eps;
printf("%d\n", (int)ans);
return 0;
}