wikioi天梯 1011 数的计算 (记忆化递归)
2014-11-04 16:01
281 查看
题目描述 Description
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入描述 Input Description
一个数n
输出描述 Output Description
满足条件的数的个数
样例输入 Sample Input
6
样例输出 Sample Output
6
数据范围及提示 Data Size & Hint
6个数分别是:
6
16
26
126
36
136
好久不做记忆化递归的题了,刷天梯正好遇到这题……
刚开始想递归还怕超时,后面感觉记忆化应该可以,然后就写了,试了最大的n=1000秒出才放心……
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入描述 Input Description
一个数n
输出描述 Output Description
满足条件的数的个数
样例输入 Sample Input
6
样例输出 Sample Output
6
数据范围及提示 Data Size & Hint
6个数分别是:
6
16
26
126
36
136
好久不做记忆化递归的题了,刷天梯正好遇到这题……
刚开始想递归还怕超时,后面感觉记忆化应该可以,然后就写了,试了最大的n=1000秒出才放心……
#pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #include<queue> #include<set> #include<cmath> #include<bitset> #define mem(a,b) memset(a,b,sizeof(a)) #define lson i<<1,l,mid #define rson i<<1|1,mid+1,r #define llson j<<1,l,mid #define rrson j<<1|1,mid+1,r #define INF 1000000007 #define seed 13131 #define seed1 1313 #define maxn 500005 typedef long long ll; typedef unsigned long long ull; using namespace std; ll a[1005]; ll dfs(int n) { if(!n||n==1) return 0; if(a ) return a ; ll sum=n/2; for(int i=n/2;i>1;i--) sum+=(a[i]=dfs(i)); return sum; } int main() { int n; cin>>n; cout<<dfs(n)+1<<endl; return 0; }
相关文章推荐
- Wikioi 天梯 数的计算(1011)
- wikioi 1011 数的计算 普及组 2001
- CODE[VS] 天梯 1011 数的计算 2001年NOIP全国联赛普及组
- 【wikioi】1011 数的计算
- wikioi1011 数的计算 (2001年NOIP全国联赛普及组)
- wikioi 1011 数的计算
- 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法
- Wikioi 天梯 蛇形矩阵(1160)
- 递归计算向非递归计算转换模板
- 简单编程(十五)编写递归方法 getPower(int x,int y),用于计算x的y次幂
- 递归计算1-100的数
- 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法
- 递归计算指定目录下的文件及文件总个数,并封装为ztree对象数据
- 14章类型信息-之类型转换前先做检查--之使用类字面常量--类名.class--以及动态instanceof(isInstance方法)----递归计数(计算各个类的个数)
- 面试题16:递归计算二叉树的最大、最小深度
- 第1个人年龄为10,以后依次加2,递归计算第N个人的年龄
- 计算二叉树的最大宽度(非递归)
- 剑指offer 2.4 递归和循环-斐波那契数列计算改进
- 用递归计算阶乘咋不行呢?
- 根据科目计算父科目ID,并递归累计求父科目的金额