【题解】洛谷 P4759 [CERC2014]Sums

该博客主要解析了洛谷P4759题目,内容涉及连续正整数和的求解方法。通过等差数列的性质,得出连续正整数和与平均数的关系,并针对给定和的情况,探讨如何找到最小数最大情况的解。博主详细介绍了判断小数部分为0.5的技巧,并提供了C++实现的算法思路,最后给出了优化枚举范围的策略以避免超时。

题目传送门

题意:

一共有 T T T 组数据,每组数据给定一个数 N N N,请将 N N N 分解为几个连续正整数的和,如果有多种情况,请输出最小数最大的情况。

题解:

众所周知,这些连续的正整数为等差数列,而等差数列求和的公式为:
1 2 ( a + b ) t \frac{1}{2}(a+b)t 21(a+b)t
其中 a a a 为首项, b b b 为末项, t t t 为项数。在这道题,由于公差为 1 1 1,所以项数为 ( b − a + 1 ) (b-a+1) (ba+1)。带进去就是
n = 1 2 ( a + b ) ( b − a + 1 ) n=\frac{1}{2}(a+b)(b-a+1) n=21(a+b)(ba+1)
1 2 ( a + b ) \frac{1}{2}(a+b) 21(a+b) 就是从 a a a b b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值