hdu 5312 Sequence【数学推导】

题目链接: ?pid=5312

解法: 这个题看上去是一个贪心, 但是这个贪心显然是错的. 事实上这道题目很简单, 先判断1个是否可以, 然后判断2个是否可以. 之后找到最小的整数k (k > 2), 使得(m – k) mod 6 = 0即可.

证明如下: 3n(n-1)+1 = 6(n*(n-1)/2)+1, 注意到n*(n-1)/2是三角形数, 任意一个自然数最多只需要3个三角形数即可表示. 枚举需要k个。

事实上, 打个表应该也能发现规律.

三角形数:

1、3、6、10、15等等这些能够表示成三角形的形状的总数量的数,叫做三角形数。 一定数目的点或圆在等距离的排列下可以形成一个等边三角形,这样的数被称为三角形数。比如10个点可以组成一个等边三角形,,因此10是一个三角形数: x x x x x x x x x x x x x x x 开始个18个三角形数是1、3、6、10、15、21、28、36、45、55、66、78、91、105、120、136、153、171……(OEIS中的数列A000217) 第n个三角形数的公式是 n*(n-1)/2 或 ((2*n+1)^2-1)/8

造物之前,必先造人。

hdu 5312 Sequence【数学推导】

相关文章:

你感兴趣的文章:

标签云: