#P2618. 「LOJ」 Function

「LOJ」 Function

题目描述

现在你有一个函数:

inline int f(int x) {
    int tot = 0, alr = 0, now;
    while (alr<x) {
        now = rand(x) + 1;
        tot++;
        if (!v[now]) alr++, v[now] = 1;
    }
    return tot;
}

其中 vv 可以被看成是一个无限大的每一个位置初始值都为 00 的数组,rand(x)\mathrm{rand}(x) 等概率均匀随机返回 [0,x)[0,x) 中的一个整数。

对于一个给定的 nn,大(shen)葱想知道 f(n)f(n) 的期望是多少。

但是这个问题太简单了,于是他把它丢给了你。

输入格式

一行一个整数 NN。

输出格式

一行一个数,表示 f(N)f(N) 的期望,精确到整数。

样例

10
29

数据范围与提示

对于 20%20\% 的数据,N≤100N\le 100;

对于 40%40\% 的数据,N≤103N\le 10^3;

对于 60%60\% 的数据,N≤3×105N\le 3\times 10^5;

对于 80%80\% 的数据,N≤107N\le 10^7;

对于 100%100\% 的数据,N≤109N\le 10^9。