BZOJ_P2048 [2009國家集訓隊]書堆(調和級數+尤拉常數)
阿新 • • 發佈:2019-01-22
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;
}