国家集训队2009 书堆
生活随笔
收集整理的這篇文章主要介紹了
国家集训队2009 书堆
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
洛谷
BZOJ
分析
實際上就是求重心坐標。
假設第 \(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;
}
轉載于:https://www.cnblogs.com/hlw1/p/11437197.html
總結
以上是生活随笔為你收集整理的国家集训队2009 书堆的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSOI2010 BZOJ1826 缓
- 下一篇: SCOI2009 最长距离