vijos - P1494杨辉三角形中的偶数个数 (递归分治 + 记忆化搜索 + python)
来源:互联网 发布:蚂蚁程序员 编辑:程序博客网 时间:2024/06/06 13:21
P1494杨辉三角形中的偶数个数
Accepted
背景
curimit最近心情特别不好,尤其是看到偶数。
描述
某天,curimit在玩耍时,发现了一个纸头上画着一个杨辉三角形,心中感觉特不爽。
他认为偶数是导致他心中不爽的根本原因。并且有多少个偶数,他的不爽程度就为多少。
下面,请你算算curimit究竟有多不爽。
对杨辉三角形的说明:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
。。。。。。。。。。。
形如上图的三角形称为杨辉三角形,而curimit看到的是这个三角形的前n行。
格式
输入格式
一行,一个n 。我们保证n小于50位。
输出格式
一行,curimit的不爽程度。
样例1
样例输入1[复制]
4
样例输出1[复制]
4
限制
1秒。。。。
提示
对样例的说明:
样例给出的三角形是:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
这个4行的杨辉三角形中一共有4个偶数。
本题有很大难度,请认真思考。
对前5个点:每个点2分,n均小于100
对第6-10个点:每个点4分,n均小于10000
对第11-16个点:每个点5分,n均小于maxlongint
对第17-20个点:每个点10分,n均小于10^50
来源
curimit原创。
通过寻找规律,发现一下推导式:
a(0)=a(1)=0, a(2n) = 3a(n)+n(n-1)/2, a(2n+1) = 2a(n)+a(n+1)+n(n+1)/2
#!/usr/bin/env python3# -*- coding: utf-8 -*-L = {}def fun(m): if L.get(m): return L[m] n = int(m / 2); if m < 2: return 0 else: f = 0 if m % 2 : f = 2 * fun(n) + fun(n + 1) + n * (n + 1) / 2; else: f = 3 * fun(n) + n * (n - 1) / 2; L[m] = f return fn = int(raw_input())print fun(n + 1)
0 0
- vijos - P1494杨辉三角形中的偶数个数 (递归分治 + 记忆化搜索 + python)
- Vijos P1494 杨辉三角形中的偶数个数
- 杨辉三角形(记忆化递归)
- 数字三角形——递归、递推、记忆化搜索
- 递归+记忆化搜索
- vijos-p1599 货币 -记忆化搜索
- [记忆化搜索]vijos 1599 货币
- 动态规划之数字三角形(三种解法:递归,递推,记忆化搜索)
- 动态规划——数字三角形(递归or递推or记忆化搜索)
- poj1191 分治思想,记忆化搜索
- 数字三角形递归与记忆化
- 数字三角形问题,记忆化搜索
- 记忆化搜索--剪枝 vijos Function(Function(F...
- [记忆化搜索]vijos 1547 逆转,然后再见
- [vijos 1599]: 货币(记忆化搜索+hash优化)
- 记忆化递归搜索(poj 1579)
- POJ 1088 递归+记忆化搜索
- POJ1088 滑雪(递归 + 记忆化搜索)
- 贪心算法专题小结——区间相关问题
- hdu 1867 A + B for you again
- java常见连接池比较
- 2544 最短路【dijkstra】
- sql中的group by 和 having 用法解析
- vijos - P1494杨辉三角形中的偶数个数 (递归分治 + 记忆化搜索 + python)
- LeetCode之Minimum Depth of Binary Tree
- Hadoop/Hive简介
- sql中InnoDB和MyISAM的区别
- 【移动开发者沙龙】第三期报名进行中……
- Tomcat版本与Servlet、JSP等版本的支持关系
- Cocos2d-x之简单数据存储 — Userdefault
- [Leetcode]Single Number III
- 仿淘宝星级评论的实现