标签:
题目链接:
http://acm.hdu.edu.cn/showproblem.php?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
版权声明:转载请注明出处。
标签:
原文地址:http://blog.csdn.net/u014427196/article/details/47071147