BZOJ传送门
Time Limit: 10 Sec Memory Limit: 259 MB
Submit: 957 Solved: 440
[Submit][Status][Discuss]
Description
Input
第一行正整数 N M
Output
一行(有换行符),L,表示水平延伸最远的整数距离 (不大于答案的最大整数)
Sample Input
样例
Input: 1 100
Output: 49
Input: 2 100
Output: 74
Sample Output
N <= 10^18 数据保证答案 < 10^6
HINT
Source
By 何朴藩
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
#define eps 1e-10
#define r 0.5772156649
long long n,m;double ans;
int main(){
scanf("%lld%lld",&n,&m);
if(n<=10000)
for(int i=1;i<=n;i++) ans+=0.5/i;
else ans=log(n+1.0)+r,ans/=2.0;
ans*=m;
printf("%d\n",(int)(ans-eps));
return 0;
}