【代码超详解】LightOJ 1234 Harmonic Number(技巧,260 ms)

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决? 🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。 阅读详情

一、题目描述

Time limit
3000 ms
Memory limit
32768 kB
OS
Linux
Source
Problem Setter: Jane Alam Jan

In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers:
在这里插入图片描述
In this problem, you are given n, you have to find Hn.

Input

Input starts with an integer T (≤ 10000), denoting the number of test cases.

Each case starts with a line containing an integer n (1 ≤ n ≤ 108).

Output

For each case, print the case number and the nth harmonic number. Errors less than 10-8 will be ignored.

Sample Input

12
1
2
3
4
5
6
7
8
9
90000000
99999999
100000000

Sample Output

Case 1: 1
Case 2: 1.5
Case 3: 1.8333333333
Case 4: 2.0833333333
Case 5: 2.2833333333
Case 6: 2.450
Case 7: 2.5928571429
Case 8: 2.7178571429
Case 9: 2.8289682540
Case 10: 18.8925358988
Case 11: 18.9978964039
Case 12: 18.9978964139

二、算法分析说明与代码编写指导

三、AC 代码(260 ms)

n 最大达到 10^8,打表存下结果会超时。而且本题的内存限制是 32 MB,也没有办法存储这么长的结果(一个 double 变量占 8 字节)。
我们可以间隔一定距离来存储累加的结果。例如本代码只存储 H32,H64,H96,……。
在计算 Hn 的时候,将最后一截未存储下来的部分累加即可。
间隔选用 2 的正整数次方是因为 x % 2^n 会被编译器优化为 x & (2^n - 1),将花费周期较长的取模运算转化成花费周期较短的位运算。

#include<cstdio>
#include<cmath>
#pragma warning(disable:4996)
const unsigned smax = 100000001;
double h[smax / 32 + 1], s, t; unsigned T, n, r;
int main() {
	for (unsigned i = 1; i < smax; ++i) {
		s += 1.0 / i;
		if (i % 32 == 0)h[i / 32] = s;
	}
	scanf("%u", &T);
	for (unsigned i = 1; i <= T; ++i) {
		scanf("%u", &n); r = n % 32; t = 0;
		for (unsigned i = 1; i <= r; ++i)t += 1.0 / (n - r + i);
		printf("Case %u: %.10lf\n", i, h[n / 32] + t);
	}
	return 0;
}
Windows 11 安装、使用 IndexTTS2 本文详细介绍了如何在 Windows 11 系统上安装与使用 B站开源的新一代文本转语音模型 IndexTTS2。内容涵盖硬件要求、Git 与 uv 工具安装、项目源码获取、依赖配置、模型下载及 WebUI 启动步骤,并说明了基础与高级使用方法。教程注重实操细节,包括环境变量设置、显存适配启动参数等,帮助用户顺利部署并体验高质量、可调控情感与节奏的 TTS 语音合成效果。 阅读详情

相关推荐

Power BI常见问题篇1:无法打开文档

Power BI常见问题篇1:无法打开文档

weixin_48273257的博客 3305

lightoj-1234-调和级数

题目传送门:https://vjudge.net/problem/LightOJ-1234 方法一:(有点投机取巧了) 公式如下:    其中r为常数,r=0.57721566490153286060651209(r就是欧拉常数) but n大的时候,精确度才高。所以数小的时候就打表。 特别注意,由于题目要求精度为10^-8,常数r为有限位数,所以正常利用这个公式,并不能达到精

newproblems的博客 529

【STM32】R05D电控红外协议的美的空调遥控器

目录一、设计思路一、R05D红外协议原理1.协议手册理解2.验证时序(重点)二、硬件实现1.需要的材料2.对发射模块电路进行修改3.STM32 GPIO选择三、代码实现1.载波38kHZ实现2.R05D时序实现3.调用函数并验证 一、设计思路 通常红外遥控采用NEC传输协议,而美的空调采用的是R05D红外协议(应该是自己设计的协议),因此用一般红外编码发射模块无法直接对空调进行控制。 解决方法:获取R05D协议手册 + 用红外接收管对原有遥控器红外接收进行波形分析。 一、R05D红外协议原理 R05D电控功

weixin_42204837的博客 1万+

LightOJ1234(Harmonic Number)

解法1(分块打表) 将打表结果分块,解决内存不足的问题,是一个很实用的技巧。 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long lo...

qq_42835440的博客 246

SRC漏洞挖掘实战:从攻击面管理到业务逻辑漏洞的精准狩猎

在网络安全领域,漏洞挖掘是识别和利用软件系统中安全弱点的核心实践。其基本原理在于通过系统化的方法,识别和评估一个应用或系统的攻击面,并从中定位安全防护的薄弱环节。这项技术的价值在于能够主动发现潜在风险,防患于未然,对于保障企业数字资产安全至关重要。典型的应用场景包括对Web应用、移动端API以及各类在线业务系统的安全性评估。在实际的漏洞挖掘,尤其是针对安全应急响应中心(SRC)的实战中,高效的策略往往聚焦于**边缘资产**的发现与利用,以及对**业务逻辑漏洞**的模式化测试。掌握这些经过验证的思路,能帮助安

babing2770的博客 415

保姆级教程:在通达信V7.611上配置欧奈尔RPS曲线(附完整公式与每日更新流程)

本文提供通达信V7.611配置欧奈尔RPS曲线的保姆级教程,涵盖从环境准备、基础设置到核心公式配置的全流程。详细讲解如何创建股票池、编写EXTRS基础公式及RPS显示公式,并附每日更新流程与实战应用技巧,帮助投资者精准捕捉强势股。

weixin_30000735的博客 464

Light OJ-1234-调和级数求和(just处理)

哇,这个题在紫书上有一个公式,但是只有n很大的时候才能满足精度,于是看了题解。 题解乍一看,哇,好高端,调和级数!仔细一看就是处理了下打表.... #include #include #include #include #include #include using namespace std; const int mod=100;//每100个分成一组,存在一个数组元素里,根

alusang的博客 978

PCIe学习笔记(一)-------1.3 PCIe数据包(TLP,DLLP,PLP)

1,PCIe的层次结构 PICe设备在硬件电路上可以分为三个层次结构:事务层(Transaction Layer)、数据链路层(Data Link Layer)、物理层(Physical)。每一个层次又可以分为两个部分,分别为处理发送和处理接收的部分。 也可以分为四个层次,将事务层以上的层次称为软件层(Software Layer)。 2,PCIe数据包 前面已经说过PCIe之间是以数据包的形式来传输数据的,协议共定义了3类数据包。与处理层相关的是处理层数据包(TLP),与数据链路层相关的是数据

llxxyy507的博客 2万+

LightOJ 1234

这题目很简单明了 求一个项数很大的 调和数级。。。。 如果正常求得话 T 很大 N也很大 ,直接求不可能的,如果暴力打表也会卡内存,所以这题还需要打表,但是是一种技巧性打表 既然 N 很大,打表不方便,我们不如稀释一下 N 如果我们只打 1e7都是可以接受的,之后就相当于把 N 上的时间花在了 T 上边,所以就是稀疏的打表。。 很简单,只要每 100 个记录一次,输入 n 的时候先找到最近的...

qq_40924940的博客 389

2026.3.13:docker compose运行了Milvus 6个月,占用磁盘近138GB的原因

Docker容器运行Milvus半年后占用138GB磁盘空间,主要原因是容器日志无限增长、容器内写入大量数据未挂载到数据卷,以及未清理临时文件。通过检查发现超大容器目录569035582ce3...占用主要空间。解决方案是使用truncate命令清空容器日志文件(*-json.log),释放磁盘空间。建议配置日志轮转机制,并将数据挂载到宿主机数据卷以避免类似问题。

拥抱具身智能,昇腾Ascend C 194

进阶01:Labview与OPC UA设备通信

LabVIEW通过OPC UA实现高效设备通信方案 本文介绍了使用LabVIEW与OPC UA设备通信的完整实施方案。OPC UA协议具有跨平台兼容、高安全性和高效数据交换等优势。实施步骤包括:1)安装NI OPC UA工具包;2)搭建模拟测试环境,使用OPC UA Simulation Server创建测试变量;3)编写LabVIEW程序,实现连接服务器、事件订阅、数据读写等功能。重点展示了通过用户事件实现设备主动触发的机制,当模拟变量值改变时自动触发LabVIEW事件处理。该方案验证了OPC UA在工业

weixin_38637405的博客 1404

LightOJ - 1234(分区间打表+枚举)

思路:把【1,1e8】分成每50一个区间,然后打表记录是第几个50,出的部分之间枚举,不会超过50,就是打表速度略蛋疼。 1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include &lt...

weixin_30906185的博客 167

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LightOj 1234(调和级数求和)

lightoj 1234题目大意:调和级数求和,即:ans=∑i=1n1ians = \displaystyle \sum_{i = 1}^n{1 \over i}思路:分段打标分别求出1∼100,101∼200,…1e8100−99∼1e81001 \sim 100, 101 \sim 200, \dots \displaystyle{{1e8} \over 100} -99 \sim {{1e8

伪伪的喵喵。。 1034

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LightOJ-1234

///题意:求一个数的调和级数; ///思路:在1e8的范围内进行分块打表 #include<cstdio> using namespace std; const int maxn=1e8; const int maxn1=2e6+7;///卡了一部分内存; int cnt=0; double a[maxn1];void init() { double ans=0; a[0]=0;/

布呗之路 392

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LightOJ - 1234 Harmonic Number(打表+技巧)

原题链接:传送门 题意:求调和级数的部分和。调和级数如下: 思路:这个题n的数据范围是1e8,直接开数组存不下,可以降值来存,就是每100个数的调和级数存一下。最后再把剩余的遍历一下就好了,时间复杂度也降下来了。 #include &lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; const int N = 1e8+...

FLY的博客 235

LightOJ 1234 Harmonic Number(调和级数求和)

题目链接: LightOJ 1234 Harmonic Number 题意: 求n级调和级数之和:h[n] = 1/1 + 1/2 + 1/3 + 1/4 +…+ 1/n。(n <= 1e8)。要求误差不超过1e-8. 分析; 找公式? 则当n > 1e6时可以用公式: h[n]=(log(n * 1.0) + log(n + 1.0)/2.0 + 1.0/(6.0 * n * (n

ramay7 963

lightoj1234 分段打表

1234 - Harmonic Number PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 MB In mathematics, the nth harmonic number isthe sum o

liyunlonghere 882

LightOJ1234调和级数求和公式

1234 - Harmonic Number     PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 MB In mathematics, the nth harmonic number is the sum of the

Uniontake 4002

lightoj1234Harmonic Number

题目链接:http://lightoj.com/volume_showproblem.php?problem=1234 sb题,分块打表就行#include <stdio.h> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> using namespace std; double ans[100001

IDrandom的专栏 418

LightOJ - 1234(欧拉常数 模板记)

链接:https://cn.vjudge.net/contest/276155#problem/I 1+1/2+1/3... = log(1+n) + r(欧拉常数),需要大精度时减去1.0/(2*n); r =0.57721566490153286060651209 #include<iostream> #include<algorithm> #include&...

dukig的博客 240

Harmonic Number LightOJ - 1234 (公式或者非常非常有技巧的打表)

Harmonic Number LightOJ - 1234    题目传送门: https://vjudge.net/problem/LightOJ-1234 题意: 调和级数求和 思路: 首先来看,这个n是很大的(1e8),一个数组似乎存不下,一个一个求又肯定超时。 怎么办,难道调和级数求和有通项公式? 百度一下,还真的有,不过是近似的。 调和级数近似求和通项解 f(...

一个从入门到入土的人写的博客 342

lightoj 1234 - Harmonic Number(技巧打表)

In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers: In this problem, you are given n, you have to find Hn. Input Input starts with an integer T

SSimpLe_Y的博客 1166

Harmonic Number (LightOJ-1234)

Problem Description In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers: In this problem, you are given n, you have to find Hn. Input Input sta...

Alex_McAvoy的博客 341

LightOJ 1234(调和级数、有通项公式的发散数列求和)

调和级数求和(1/1+1/2+1/3+……..+1/n) 可用于大数有通项公式的求和计算利用分组来平衡内存和时间

tick_tock97的博客 2033

D - Harmonic Number——(LightOJ 1234)

传送门 password: nefuDescriptionIn mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers:In this problem, you are given n, you have to find Hn.InputInput start

代码改变世界 972
上一篇: 【代码超详解】LightOJ 1236 Pairs Forming LCM(唯一分解定理)
下一篇: 负数的取余
山上一缕烟
博客等级 码龄8年 269粉丝 498原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值