P1028 数的计算
P1028
题目描述
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:
不作任何处理;
在它的左边加上一个自然数,但该自然数不能超过原数的一半;
加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入输出格式
输入格式:
1个自然数n(n≤1000)
输出格式:
1个整数,表示具有该性质数的个数。
输入输出样例
输入:
6
输出:
6
分析:
这道题理论上是可以用暴力递归的,但是会超时。
也可以写递推公式:
首先,f[n]表示输出符合的个数。
n=0、n=1时,f[n]=1
n=2,f[n]=2 n=3,f[n]=2
n=4,f[n]=4 n=5,f[n]=4
n=6,f[n]=6 n=7,f[n]=6
可以看出,2n与2n+1(n为非负整数)的答案是一样的。
以8为例,
8
18 28
128 138 148 248
1248
排序树??
①当我们把8和8下面的左三棵子树放在一起,并将所有的8都改成7,我们能发现,我们得到了n=7时的所有解。//n-1
7
127 137
②我们再把最右端的子树(即剩下的部分)中的所有8删去,我们得到了n=4时的所有解。//n/2
4
14 24
124
取n时,类比上例。
于是,可以得到: f[i]=f[i-1]+f[i/2]。
我们又知道2n与2n+1(n为非负整数)的答案是一样的。
所以,n为偶数时,直接用递推公式,n为奇数时,把它换成对应的偶数再套递推公式。
代码:
#include <bits/stdc++.h> //注意是斜杠而不是反斜杠
using namespace std;
int main(){
int n,f[];
f[]=f[]=;
cin>>n;
for(int i=;i<=n;i++){
if(i%==)f[i]=f[i-]+f[i/];
else f[i]=f[i-];
}
printf("%d",f[n]);
return ;
}
P1028 数的计算的更多相关文章
- 洛谷 P1028 数的计算【递推】
P1028 数的计算 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它 ...
- luogu P1028 数的计算 x
P1028 数的计算 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它 ...
- 【递推】P1028数的计算
题目相关 题目描述 我们要求找出具有下列性质数的个数(包含输入的正整数 n). 先输入一个正整数 n(n ≤1000),然后对此正整数按照如下方法进行处理: 不作任何处理: 在它的左边加上一个正整数, ...
- 洛谷P1028数的计算
https://www.luogu.org/problemnew/show/P1028 只用递归会超时,需要用递归型动规,用一个数组保存已经算过的值,避免重复计算. 求数字为n的方案数的最优子结构为: ...
- 洛谷 P1028 数的计算
嗯... 首先这道题想到的就是递推.... 但是递推失败 (不知道自己是怎么想的 然后又想打一个暴力,但是数的最高位太难存储了,所以又放弃了(并且好像这个暴力大约500就会炸... 然后看了题解,才发 ...
- 洛谷--P1028 数的计算(递推)
题意:链接:https://www.luogu.org/problem/P1028 先输入一个自然数n (n≤1000) , 然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自 ...
- 洛谷P1028 数的计算 题解 动态规划入门题
题目链接:https://www.luogu.com.cn/problem/P1028 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数 \(n\) ): 先输入一个自然数 \(n(n \ ...
- (递推)codeVs1011 && 洛谷P1028 数的计算
题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1. 不 ...
- P1028 数的计算 洛谷
https://www.luogu.org/problem/show?pid=1028 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000), ...
随机推荐
- Pytest+Allure定制报告
前言: 最近在研究接口自动化的框架,好的测试报告在整个测试框架起到至关重要的部分.终于被我发现一个超好用的报告框架,不仅报告美观,而且方便CI集成. 就是它,就是它:Allure Test Repor ...
- PS绘制扁平化风格相机镜头UI图标
一.新建一个画布,绘制一个460*460图层,圆角半径40像素.填充渐变颜色,加一点点投影,这样就有质感了. 二.接下来我们要来绘制主体部分,绘制一个圆,大小400*400,用内阴影,渐变叠加,投影得 ...
- final域的内存语义
final 一.final的基本语义 final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量) 当用final修饰一个类时,表明这个类不能被继承. 当用final修饰一个方法时,表明这个方 ...
- echarts使用笔记五:echarts的Zoom控件
option = { title: { text: '趋势' }, tooltip : { trigger: 'axis', show:true, axisPointer : { // 坐标轴指示器, ...
- vue-lazyload简单使用
vue-lazyload简单使用 npm地址:https://www.npmjs.com/package/vue-lazyload github地址:https://github.com/hilong ...
- xmanager 乱码
xmanager连接后中文显示乱码 - 程序员CC - 博客园http://www.cnblogs.com/aomidata/p/3445075.html Xshell 为什么会出现中文乱码?-Xma ...
- [转帖]Linux 下如何知道是否有人在使坏?
Linux 下如何知道是否有人在使坏? 学到了两个最简单的命令 usermod -L username 锁定账户 passwd -s username 查看用户状态. 自己linux 知道的还是少 需 ...
- 使用withCount后再使用select设置查询的字段。就找不到withCount的数据了
https://laravelacademy.org/index.php/discussion/1021 如:Article::withCount(['comments'])->select(' ...
- MyBaits全局配置文件的各项标签2
▲typeHandlers 类型处理器,它架起数据库和JavaBean一一映射的桥梁,这里需要注意一下,java在JDK1.8之前,日期处理函数并不丰富,但在JDK1.8之后引入JSR-310标准,这 ...
- phpstorm显示页面不停的在indexing转圈中,并且文件名还一直在刷新
打开 File下的 Invalidate Caches / Restart...下的 Invalidate and Restart. 便可以了 ......