1. 程式人生 > >BZOJ_P2048 [2009國家集訓隊]書堆(調和級數+尤拉常數)

BZOJ_P2048 [2009國家集訓隊]書堆(調和級數+尤拉常數)

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; }