洛谷P1028 数的计算 题解 动态规划入门题
题目链接:https://www.luogu.com.cn/problem/P1028
题目描述
我们要求找出具有下列性质数的个数(包含输入的自然数 \(n\) ):
先输入一个自然数 \(n(n \le 1000)\) ,然后对此自然数按照如下方法进行处理:
- 不作任何处理;
- 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
- 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入格式
1个自然数 \(n(n \le 1000)\)
输出格式
1个整数,表示具有该性质数的个数。
问题分析
我们可以使用 动态规划 来解决这个问题。
我们令 \(f[i]\) 表示自然数 \(i\) 能够生成的数的个数,则:
\(f[i] = 1 + \sum_{j=1}^{n/2} f[j]\)
实现代码如下:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1010;
int n, f[maxn];
int main() {
cin >> n;
for (int i = 1; i <= n; i ++) {
f[i] = 1;
for (int j = 1; j <= i/2; j ++)
f[i] += f[j];
}
cout << f[n] << endl;
return 0;
}
总结:这是一道动态规划入门题,可以用递推、递归做(不过递归做的时候不要忘了开备忘录)。
洛谷P1028 数的计算 题解 动态规划入门题的更多相关文章
- 洛谷 P1028 数的计算【递推】
P1028 数的计算 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它 ...
- 洛谷P1028.数的计算(动态规划)
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然 ...
- 洛谷 P1028 数的计算
嗯... 首先这道题想到的就是递推.... 但是递推失败 (不知道自己是怎么想的 然后又想打一个暴力,但是数的最高位太难存储了,所以又放弃了(并且好像这个暴力大约500就会炸... 然后看了题解,才发 ...
- 洛谷P1028数的计算
https://www.luogu.org/problemnew/show/P1028 只用递归会超时,需要用递归型动规,用一个数组保存已经算过的值,避免重复计算. 求数字为n的方案数的最优子结构为: ...
- 洛谷--P1028 数的计算(递推)
题意:链接:https://www.luogu.org/problem/P1028 先输入一个自然数n (n≤1000) , 然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自 ...
- (递推)codeVs1011 && 洛谷P1028 数的计算
题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1. 不 ...
- 洛谷P1028 数的计算
https://www.luogu.org/problem/P1028 #include<cstdio> using namespace std; int main(){ ,i,f[]; ...
- (Java实现) 洛谷 P1028 数的计算
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数nn): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能 ...
- Java实现 洛谷 P1028 数的计算
import java.util.Scanner; import java.util.Arrays; public class Main { private static Scanner cin; p ...
随机推荐
- @codechef - MGCH3D@ 3D Queries
目录 @description@ @solution@ @accepted code@ @details@ @description@ 在三维空间内有 N 个不同的点,请计算下面式子的值 Q 次: \ ...
- MySQL数据库优化(五)——MySQL查询优化
http://blog.csdn.net/daybreak1209/article/details/51638187 一.mysql查询类型(默认查询出所有数据列)1.内连接 默认多表关联 ...
- 2019徐州网络赛 I.query
这题挺有意思哈!!!看别人写的博客,感觉瞬间就懂了. 这道题大概题意就是,给一串序列,我们要查找到l-r区间内,满足min(a[ i ],a[ j ]) = gcd(a[ i ],a[ j ]) 其实 ...
- springmvc使用javabean作为请求参数
1 首先写两个javabean对象 person 和 address 代码如下.两个类之间的关系如代码中 package cn.bean.demo.bo; public class Person ...
- Spring Boot 集成日志logback + 控制台打印SQL
一: 控制台打印SQL application.properties中添加如下即可在控制台打印sql logging.level.com.fx.fxxt.mapper=debug 二:日志 因为Spr ...
- H3C 典型数据链路层标准
- Java Annotation详解(二): 反射和Annotation
前面一篇文<Java Annotation详解(一): 理解和使用Annotation>中,我们或许会觉得,Annotation注释其实并没有多大的作用,除了几个内建的Annotation ...
- Activiti7工作流+SpringBoot
文章目录 一. Activiti相关概念 1. Activiti介绍 2. 核心类 2.1 ProcessEngine 2.2 服务(Service)类 2.2.1 TaskService 2.2.2 ...
- VisualStudio 使用多个环境进行调试
在 VisualStudio 2017 支持使用 launchSettings.json 文件定义多个不同的环境进行调试 先给大家一张图看一下效果 可以看到原来的是启动的按钮,现在被我修改为 lind ...
- linux scull 中的缺陷
让我们快速看一段 scull 内存管理代码. 在写逻辑的深处, scull 必须决定它请求的内 存是否已经分配. 处理这个任务的代码是: if (!dptr->data[s_pos]) { dp ...