2018南京区域赛G-Pyramid(纯思维法,不用打表和差分)

题目
网上都说这题是打表找规律,但是没有一个给出具体做法的。之前我按照自己打的表找了好久都没找到规律,但是没找到…虽然知道如果通项是四次方的话可以差四次就推出公式,但是推之前也没想到是个四次的函数。于是自闭推了好久,终于找到了正规的计算方式。

思维过程:

第一步:首先n有1e9因此大概率不是递推(除非矩阵快速幂),既然不是递推,就不考虑多一层之后答案会增加多少,而直接考虑已知n层,怎么直接算答案。

第二步:首先画一个4层的图,思考如何计算答案,通过手算,我们大概率不能立马得到正确答案35,但是通过打表或者仔细手模还是能得到答案是35的。如果模出来不是35,那么你大概率就是少数了图上(绿,红,紫)这几个三角形。
在这里插入图片描述
当然,如果你模出来就是35,说明你非常仔细,考虑到了上图中的情况,恭喜你。

第三步:寻找核心规律。
观察上图可以发现,容易漏掉的三角形们都有一个共同点:边长很奇怪,三个顶点也很奇怪。但是他们都有一个共同的本质,那就是他们都是一个正三角形三个顶点沿同一方向移动相同的长度才能构成的。
因此边长为4的正三角形中,就能找到总共4个三角形(三个涂色的,剩下一个是最正的)。于是不难发现,一个边长为n的正三角形,共有n个三角形(且这些三角形的点都在边界上)。于是要计算答案,我们可以枚举正三角形的大小和个数,就能知道总的答案。(由于每次计算只会计算这个边长的正三角形其中的个数,因此枚举边长不会导致重复和少算,而且倒着的三角形也不用考虑了,因为倒着的肯定包含于大的正三角形其中的)
第四步:计算:枚举边长,统计该边长三角形个数,再乘上边长(每个三角形包含边长个)。
边长1:1+2+3…+n个 乘1
边长2:1+2+3…+(n-1)个 乘2
.
.
.
边长n:1个 乘n
所以最后答案为 ∑ k = 1 n ( n − k + 1 ) ( n − k + 2 ) k 2 \displaystyle \sum^{n}_{k = 1}{\frac{(n-k+1)(n-k+2)k}{2}} k=1n2(nk+1)(nk+2)k
当然由于肯定不能枚举k,所以化到这里还不够,接下来把式子拆开,按k的幂次合并(n是常数),最后把k用立方和,平方和等公式代掉,最后就只剩下n了,也就是 n ( n + 1 ) ( n + 2 ) ( n + 3 ) 24 \frac{n(n+1) (n+2)(n+3)}{24} 24n(n+1)(n+2)(n+3),于是就能O(1)计算了,轻松过了此题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值