NOJ 1010 记忆化搜索
2016-04-21 14:45
295 查看
数的计算
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 1820 测试通过 : 565
比赛描述
要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入
一个自然数n
输出
一个数,表示满足条件的数的个数
样例输入
6
样例输出
6
提示
样例说明:满足条件的数是6,16,26,126,36,136
题目来源
NOIP2001 普及组
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 1820 测试通过 : 565
比赛描述
要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入
一个自然数n
输出
一个数,表示满足条件的数的个数
样例输入
6
样例输出
6
提示
样例说明:满足条件的数是6,16,26,126,36,136
题目来源
NOIP2001 普及组
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int dp[1005]; int dfs(int cur) { if(dp[cur]>=0) return dp[cur]; int res=0; for(int i=0;2*i<=cur;i++) { res+=dfs(i); } return dp[cur]=res; } int main() { int n; int ans; memset(dp,-1,sizeof(dp)); dp[0]=1; scanf("%d",&n); ans=dfs(n); printf("%d\n",ans); return 0; }
相关文章推荐
- android studio首次打开
- AngularJs 第一个自定义指令编写
- JS基础知识第一弹
- Android网络数据JSON和XML的解析
- Java 读取Ftp文件大小
- 改进iOS客户端的升级提醒功能--(by cos_sin_tan 虽然是转载的,但是我还是很有兴趣实现他的说法。)
- 报错:java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
- color用法大全--Android布局背景颜色设置
- Android生成带LOGO图片二维码的方法
- 如何让生成的程序以管理员身份运行(C++builder 2010)
- @synthesize和@dynamic区别
- Repository 设计模式介绍
- C# 中传递多个参数给多线程
- 珍贵博客链接
- 论CSS ::before 和 ::after
- 80X86寄存器详解
- JavaScript入门
- paramiko及简单多进程
- Ubuntu安装共享文件夹
- (java)关于OJ中字符串通过空格分隔的情况,注意事项