题目描述

输入

第一行正整数 N M

输出

一行(有换行符),L,表示水平延伸最远的整数距离 (不大于答案的最大整数)

样例

#1
Input: 1 100
Output: 49
#2
Input: 2 100
Output: 74


题解

数论

一个结论:桌面上摆$n$本长度为$l$的书,不掉出桌面,能够伸出桌面的最大长度为$\frac 12l*H_n$,其中$H_n=\sum\limits_{i=1}^n\frac 1i$。

证明:设i本书按该条件摆放,它们的重心距离最下面的书的边缘的距离为$\frac12l*f(i)$,那么首先有$f(1)=1$,而考虑$i$本书的情况,上面的$i-1$本的重心一定是在第$i$本的边缘上。那么由杠杆原理,$(i-1)*f(i)=1*(1-f(i))$可知,故$f(i)=\frac 1i$。而每次都是重心落在边缘,所以伸出长度即为每次的重心与边缘的距离之和$H_n$。

但是$n$有$10^18$之大,直接暴力肯定使不可取的。考虑调和级数的近似值:$H_n\approx ln(n+1)+\gamma$,其中$\gamma$为欧拉常数,它约为0.57721566490153286060651209。

这个公式当$n$较小时误差较大,所以当$n$较小时考虑暴力求解,$n$较大时套用公式。

#include <cmath>
#include <cstdio>
typedef long long ll;
int main()
{
ll n , m , i;
double ans = 0;
scanf("%lld%lld" , &n , &m);
if(n <= 1000000)
for(i = 1 ; i <= n ; i ++ )
ans += 0.5 / i;
else ans = 0.5 * (log(n + 1) + 0.5772156649);
ans *= m;
printf("%d\n" , (int)(ans - 1e-9));
return 0;
}

【bzoj2048】[2009国家集训队]书堆 数论的更多相关文章

  1. [BZOJ2048] [2009国家集训队] 书堆

    Description Input 第一行正整数 N M Output 一行(有换行符),L,表示水平延伸最远的整数距离 (不大于答案的最大整数) Sample Input #11 100 #22 1 ...

  2. [BZOJ 2048] [2009国家集训队]书堆 【调和级数】

    题目链接:BZOJ - 2048 题目分析 只有一本书时,这本书的重心落在桌子边缘上,伸出桌面的长度就是 1/2. 有两本书时,第一本书的重心就落在第二本书的边缘上,两本书的重心落在桌子边缘上,两本书 ...

  3. BZOJ 2048 2009国家集训队 书堆 数学算法

    题目大意:经典的物理上的桌边堆书问题,初中物理老师以前还讲过,只是仅仅记住了结论. . . 没关系,简单证明一下就好 首先我们设由上至下第i本书比它以下那本书多伸出去的长度为a[i],前缀和为s[i] ...

  4. BZOJ 2039: [2009国家集训队]employ人员雇佣

    2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1369  Solved: 667[Submit ...

  5. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7687  Solved: 3516[Subm ...

  6. BZOJ 2038: [2009国家集训队]小Z的袜子(hose)

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7676  Solved: 3509[Subm ...

  7. 莫队算法 2038: [2009国家集训队]小Z的袜子(hose)

    链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2038 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 ...

  8. BZOJ 2038 [2009国家集训队]小Z的袜子 莫队

    2038: [2009国家集训队]小Z的袜子(hose) 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Descriptionw ...

  9. Bzoj 2038: [2009国家集训队]小Z的袜子(hose) 莫队,分块,暴力

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 5763  Solved: 2660[Subm ...

随机推荐

  1. 【BZOJ1857】传送带(分治经典:三分套三分)

    点此看题面 大致题意: 一个二维平面上有两条传送带\(AB\)和\(CD\),\(AB\)传送带的移动速度为\(P\),\(CD\)传送带的移动速度为\(Q\),步行速度为\(R\),问你从\(A\) ...

  2. 注册Windows service及其相关

    注册Windows service,.net写的 net stop "xxxxxx""%SYSTEMROOT%\Microsoft.NET\Framework\v2.0. ...

  3. 回归树的原理及Python实现

    大名鼎鼎的 GBDT 算法就是用回归树组合而成的.本文就回归树的基本原理进行讲解,并手把手.肩并肩地带您实现这一算法. 1. 原理篇 1.1 最简单的模型 如果预测某个连续变量的大小,最简单的模型之一 ...

  4. AngularJs学习笔记-服务

    服务 (1)在模块中声明的服务对所有组件可见 (2)在组件中声明的服务对自己本身和其子组件 (3)在组件中声明的服务会覆盖在模块中声明的服务 (4)通过@Injectable()装饰器可以在服务中注入 ...

  5. CSS 样式、布局、盒子模型

    Css内容: 常用样式: 字体    颜色   背景 布局: 浮动   定位   标签特性 标签盒子模型:  边距   边框 动画: 旋转 渐变 注意:Css引路径从css文件里找   Html和js ...

  6. Oracle 自动生成hive建表语句

    从 oracle 数据库导数到到 hive 大数据平台,需要按照大数据平台的数据规范,重新生成建表的 SQL 语句,方便其间,写了一个自动生成SQL的存储过程. ① 创建一张表,用来存储源表的结构,以 ...

  7. AIDE

    安装 yum install aide 修改配置文件 vim /etc/aide.conf (指定对哪些文件进行检测) /test/chameleon R /bin/ps R+a /usr/bin/c ...

  8. 两种方法实现text输入框中“请输入关键字”的提醒

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. JZOJ 5771. 【NOIP2008模拟】遨游

    5771. [NOIP2008模拟]遨游 (File IO): input:trip.in output:trip.out Time Limits: 2000 ms  Memory Limits: 2 ...

  10. HDU - 6514 Monitor(二维差分)

    题意 给定一个\(n×m\)的矩阵.(\(n×m <= 1e7\)). \(p\)次操作,每次可以在这个矩阵中覆盖一个矩形. \(q\)次询问,每次问一个矩形区域中,是否所有的点都被覆盖. 解析 ...