洛谷 P4820 [国家集训队]书堆
题目描述
让N本密度均匀的相同的书摆在桌上。最下面的摆在桌子边缘,其他的书依次堆叠在一本书上。每本书都只能水平放置,宽必须垂直于桌子边缘。如(洛谷的)图:

求书本最右能到多远(这个距离是指最右边的书的右端点-桌子的右边缘),同时不让书因为重力垮下来。每本书的长度为M,最大化L。
当然是在“理想状态”下。即不考虑地球自转,重力系数改变,书的形变。
但是如果某本书以上的所有书的重心的竖直射影不在这本书上,或者正好落在在这本书的边界上,那么这堆书是不稳定的,会因为重力而垮下来。
输出延伸最远的距离向下取整。
\(N\le 10^{18}\),保证答案\(<10^6\)。
题意分析
这道题前不久我的物理老师\(\times5\)大人给我们讲过!
首先确定递推的方向应该是从上往下,否则上面的会影响下面的书的重心。
(以下默认长度为1)
n=1,\(\frac12\),下面的书的右端点对齐上面的书的重心。
n=2,\(\frac12+\frac14=\frac34\),第三本书对齐前两本书的重心。
n=3,\(\frac12+\frac14+\frac16=\frac{11}{12}\),第四本书对齐前三本书的重心距离。
\(\dots\)
然后就发现答案是
=\sum_{i=1}^n\frac1{2i}
\]
注意以上考虑的是重心正好落在了下一本书的边缘上。而题目中说了,正好落在边界上是不稳定的!所以要减去一个极小的数,当作是那个\(\varepsilon\)就好。
但是这不可能通过\(N\le10^{18}\)的数据的。
如果您在这个地方发现有的点是WA的话,请检查您有没有开\(\texttt{long long}\)哦~
for(LL i=1;i<=n;i++) ans+=0.5/i;
cout<<(LL)(ans*m-(1e-6));
这样大概可以做到\(10^9\),您就可以获得\(36pts\)的好成绩!
考虑在数学方面搞点文章。
可以发现这个东西就是调和级数\(H(x)\div2\)而来的

又因为\(H(x)\)和\(\ln(x)\)特别特别的相近(\(\lim_{x\to\infty}\))
第n个调和数与n的自然对数自然对数的差值收敛于欧拉常数。
\]
\]
所以对于很大的\(n\)我们只要计算\(\ln(n)+0.5772156649\dots\)即可。
Code
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<queue>
#include<vector>
#define IL inline
#define re register
#define LL long long
#define ULL unsigned long long
#define debug printf("Now is %d\n",__LINE__);
using namespace std;
inline LL read()
{
LL x=0,fu=1;
char ch=getchar();
while(!isdigit(ch)&&ch!='-') ch=getchar();
if(ch=='-') fu=-1,ch=getchar();
x=ch-'0';ch=getchar();
while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}
return x*fu;
}
double ans;
LL n,m;
int main()
{
n=read();
m=read();
if(n>100000000) cout<<(LL)(m*(log(n)+0.5772156649)/2-(1e-6))<<endl;
else
{
for(LL i=1;i<=n;i++) ans+=0.5/i;
cout<<(LL)(ans*m-(1e-6))<<endl;
}
return 0;
}
洛谷 P4820 [国家集训队]书堆的更多相关文章
- 模板—点分治A(容斥)(洛谷P2634 [国家集训队]聪聪可可)
洛谷P2634 [国家集训队]聪聪可可 静态点分治 一开始还以为要把分治树建出来……• 树的结构不发生改变,点权边权都不变,那么我们利用刚刚的思路,有两种具体的分治方法.• A:朴素做法,直接找重心, ...
- [洛谷P1527] [国家集训队]矩阵乘法
洛谷题目链接:[国家集训队]矩阵乘法 题目背景 原 <补丁VS错误>请前往P2761 题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入输出格式 输入 ...
- 洛谷P1501 [国家集训队]Tree II(LCT,Splay)
洛谷题目传送门 关于LCT的其它问题可以参考一下我的LCT总结 一道LCT很好的练习放懒标记技巧的题目. 一开始看到又做加法又做乘法的时候我是有点mengbi的. 然后我想起了模板线段树2...... ...
- 洛谷P2619 [国家集训队2]Tree I(带权二分,Kruscal,归并排序)
洛谷题目传送门 给一个比较有逼格的名词--WQS二分/带权二分/DP凸优化(当然这题不是DP). 用来解决一种特定类型的问题: 有\(n\)个物品,选择每一个都会有相应的权值,需要求出强制选\(nee ...
- 洛谷 P1407 [国家集训队]稳定婚姻 解题报告
P1407 [国家集训队]稳定婚姻 题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的 ...
- 洛谷 P1852 [国家集训队]跳跳棋 解题报告
P1852 [国家集训队]跳跳棋 题目描述 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在\(a\),\(b\), ...
- 洛谷 P1501 [国家集训队]Tree II 解题报告
P1501 [国家集训队]Tree II 题目描述 一棵\(n\)个点的树,每个点的初始权值为\(1\).对于这棵树有\(q\)个操作,每个操作为以下四种操作之一: + u v c:将\(u\)到\( ...
- 洛谷 P2757 [国家集训队]等差子序列 解题报告
P2757 [国家集训队]等差子序列 题目描述 给一个\(1\)到\(N\)的排列\(\{A_i\}\),询问是否存在 \[1 \le p_1<p_2<p_3<p_4<p_5& ...
- 洛谷 P1505 [国家集训队]旅游 解题报告
P1505 [国家集训队]旅游 题目描述 \(\tt{Ray}\) 乐忠于旅游,这次他来到了\(T\)城.\(T\)城是一个水上城市,一共有 \(N\) 个景点,有些景点之间会用一座桥连接.为了方便游 ...
- 洛谷 P1527 [国家集训队]矩阵乘法 解题报告
P1527 [国家集训队]矩阵乘法 题目描述 给你一个\(N*N\)的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第\(K\)小数. 输入输出格式 输入格式: 第一行两个数\(N,Q\),表示矩阵大 ...
随机推荐
- PPT-嵌入字体提示不可嵌入怎么办
直接将不可嵌入的字体替换为可以嵌入的字体 开始->替换->替换字体
- python 二级 第三方库(pip 、pyinstaller、jieba、wordcloud)
安装方式 首选pip安装,pip安装失败选择自定义安装.文件安装,一般windows系统pip安装有时会失败 pip安装 pip -h 查看指令 自定义安装 路径: https://www.scipy ...
- 如何编写正确高效的Dockerfile
Dockerfile是什么 Dockerfile 非常普通,它就是一个纯文本,里面记录了一系列的构建指令,比如选择基础镜像.拷贝文件.运行脚本等等,RUN, COPY, ADD指令都会生成一个 Lay ...
- liunx服务器某个Java运行服务CPU占用率过高问题排查及修复
进入服务器 用 top 命令查看 top top - 09:57:55 up 40 days, 22:05, 9 users, load average: 4.44, 4.03, 3.85 Tasks ...
- LLM应用落地实施手册
背景 自ChatGPT诞生以来,各个企业都开始尝试引入LLM落地实施"智能"应用,而目前并没有太多文章系统地介绍应该怎么落地实施一个基于LLM的应用,到底应该做哪些步骤.本人从20 ...
- centos7 下全局配置最新版的golang语言开发环境
按照以下步骤进行操作: 前往Go官方网站下载页面(https://golang.org/dl/)查找最新版本的Go二进制文件. 使用wget命令下载最新版本的Go二进制文件.例如,如果最新版本是1.1 ...
- 如何定位 Druid & HikariCP 连接池的连接泄漏问题?
背景 最近碰到一个 case,一个 Java 应用无法获取新的数据库连接,日志中出现了以下错误: com.alibaba.druid.pool.GetConnectionTimeoutExceptio ...
- 2012R2双网卡路由的设定
目前T440服务器, os只能起步2012R2.intelWin联盟是实实在在的.在该os上,DB支持SQL2008. 你要安装SQL2005也可以.到网上查找攻略.那也是死去活来.还好.2008兼容 ...
- MCP数据脱敏应用开发
一.概述 数据脱敏(Data Masking),又称数据漂白.数据去隐私化或数据变形. 定义 指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏 ...
- DPDI(Dispatch PDI)kettle调度管理平台升级预告
亲爱的DPDI用户们,久等了!Dispatch PDI全新升级,焕然一新的UI页面计划于2025.03.23正式上线.这一次,我们精心打磨每一个细节,只为给您带来前所未有的丝滑体验,让每一次浏览都成为 ...