洛谷P1028数的计算
https://www.luogu.org/problemnew/show/P1028
只用递归会超时,需要用递归型动规,用一个数组保存已经算过的值,避免重复计算。
求数字为n的方案数的最优子结构为:求数字从1到n/2的方案数之和再加上这个数字本身,即fn=f1+f2+...+f(n/2)+1,
边界为:1的符合条件的方案数只有它自己,即f1=1.
例:
f(6)=f(1)+f(2)+f(3)+1=1+2+2+1=6.
f1=1,f2=f1+1=1+1=2,f3=f1+1=1+1=2。
#include<iostream>
#include<cstring>
using namespace std;
//int cnt = 1;
int dp[];
int f(int n)//数字为n的方案数
{
if (n == )//1满足条件的只有它自己
{
dp[n] = ;
return dp[n];
}
if (dp[n] != )
{
return dp[n];
}
int e = n / ;
int sum = ;
for (int i = ; i <= e; ++i)
{
sum += f(i);
}
dp[n] = sum + ;//不为1的方案数除了从1到n/2的方案数之和还得加上这个数字自己
return dp[n];
}
int main()
{
int n;
memset(dp, , sizeof(dp));
cin >> n; cout << f(n)<< endl;
return ;
}
洛谷P1028数的计算的更多相关文章
- 洛谷 P1028 数的计算【递推】
P1028 数的计算 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它 ...
- 洛谷 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/P1028 #include<cstdio> using namespace std; int main(){ ,i,f[]; ...
- (Java实现) 洛谷 P1028 数的计算
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数nn): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能 ...
- 洛谷P1028.数的计算(动态规划)
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然 ...
- Java实现 洛谷 P1028 数的计算
import java.util.Scanner; import java.util.Arrays; public class Main { private static Scanner cin; p ...
随机推荐
- openstack dnsmasq
killall dnsmasq systemctl restart openstack-nova-compute /sbin/dnsmasq --conf-file=/var/lib/libvirt/ ...
- Spark 分布式环境--连接独立集群管理器
Spark 分布式环境:master,worker 节点都配置好的情况下 : 却无法通过spark-shell连接到 独立集群管理器 spark-shell --master spark://soyo ...
- Centos7 配置防火墙 firewall
一.firewall 1.从CentOS7开始,默认使用firewall来配置防火墙,没有安装iptables(旧版默认安装). 2.firewall的配置文件是以xml的格式,存储在 /usr/li ...
- 2-4 Vue中的属性绑定和双向数据绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- bzoj 1705: [Usaco2007 Nov]Telephone Wire 架设电话线【dp】
i的初始化写成2了于是成功查错2h--怕不是个傻子 设f[i][j]为第i根高为j,转移是 \[ f[i][j]=min(f[i-1][k]+abs(k-j)*c+(j-h[i])^2)(j>= ...
- 解方程 2014NOIP提高组 (数学)
解方程 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 输入描述 Input Description 输入文 ...
- Django day 37 网站视频的播放,购物车接口,优惠券表分析
一:网站视频的播放, 二:购物车接口, 三:优惠券表分析
- 数组去重----es6&es5&数组对象去重
es6方法: 普通数组: 1.使用Array.from(new Set(arr)); /* * @param oldArr 带有重复项的旧数组 * @param newArr 去除重复项之后的新数组 ...
- Qt实现客户端与服务器消息发送
这里用Qt来简单设计实现一个场景,即: ①两端:服务器QtServer和客户端QtClient ②功能:服务端连接客户端,两者能够互相发送消息,传送文件,并且显示文件传送进度. 环境:VS20013+ ...
- python manage.py syncdb报错:No module named MySQLdb
今天同步数据时出现这个错误: 解决方法: 1.先下载mysql-python 支持1.2.3-2.7版本 MySQL-python 1.2.3 for Windows and Python 2.7, ...