BZOJ 2048 书堆 (数论)

博客介绍了BZOJ 2048题目的解决方案,即关于2009年国家集训队的书堆问题。题目要求找出水平延伸最远的整数距离,给出了时间限制和内存限制。博主分享了样例输入和输出,并提到数据保证答案小于10^6。博主提到该题解较为简单,主要涉及数论知识,特别是调和级数的极限公式,但在较小的n值下需要使用暴力求解,较大的n值则可以利用公式。由于公式的精度问题,博主表示尝试解决并提供了思路。
摘要由CSDN通过智能技术生成

2048: [2009国家集训队]书堆

Time Limit: 10 Sec Memory Limit: 259 MB
Description

Input

第一行正整数 N M
Output

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

样例

Input: 1 100

Output: 49

Input: 2 100

Output: 74

数据保证答案 < 10^6

题目较水,不想找图弄详解了,popoqqq题解
其实大家自己算算就发现了,主要是知不知道这个调和级数极限公式。
1/1+1/2+1/3+…+1/n = ln(n+1)+r。
其中r为欧拉常数 近似值约为0.57721566490153286060651209
但这是极限公式 对于n比较小的情况误差会比较大 所以当n比较小的时候O(n)暴力出解 n比较大的时候套用公式。
这个精度很迷呀,表示并不知道怎么算,搞搞试试呗【弱基的方法。

#include<cmath>  
#include<cstdio>  
#include<cstring>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值