洛谷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 ...
随机推荐
- 移动前端第一弹:viewport详解
前言 这次想聊聊移动开发相关的事.是的,你没有看错,一句话就可以开始你的移动前端开发. 你心里一定在想,什么话这么酷,能够瞬间带入到移动前端开发的世界. 但其实它一点也不新奇,不复杂. viewpor ...
- Thinkphp模板标签if和eq的区别和比较
在TP模板语言中.if和eq都可以用于变量的比较.总结以下几点: 1.两个变量的比较: <if condition=”$item.group_id eq $one.group_id”> & ...
- bzoj 1828: [Usaco2010 Mar]balloc 农场分配【贪心+线段树】
长得挺唬人的贪心,按照右端点排序,用最小值线段树的询问判断当前牛是否能放进去,能的话更新线段树,ans++ 来自https://www.cnblogs.com/rausen/p/4529245.htm ...
- bzoj 1715: [Usaco2006 Dec]Wormholes 虫洞【spfa判负环】
tag是假的,用了及其诡异的方法判负环 正权无向边和负权有向边的图 #include<iostream> #include<cstdio> #include<cstrin ...
- Akka源码分析-Cluster-Distributed Publish Subscribe in Cluster
在ClusterClient源码分析中,我们知道,他是依托于“Distributed Publish Subscribe in Cluster”来实现消息的转发的,那本文就来分析一下Pub/Sub是如 ...
- 洛谷P3383 【模板】线性筛素数 (埃拉托斯特尼筛法)
题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行 ...
- 数学+DP Codeforces Round #304 (Div. 2) D. Soldier and Number Game
题目传送门 /* 题意:这题就是求b+1到a的因子个数和. 数学+DP:a[i]保存i的最小因子,dp[i] = dp[i/a[i]] +1;再来一个前缀和 */ /***************** ...
- Android 性能优化(13)网络优化( 9)Determining and Monitoring the Docking State and Type
Determining and Monitoring the Docking State and Type PreviousNext This lesson teaches you to Determ ...
- 关于.Net中Process的使用方法和各种用途汇总(一):Process用法简介
简介: .Net中Process类功能十分强大.它可以接受程序路径启动程序,接受文件路径使用默认程序打开文件,接受超链接自动使用默认浏览器打开链接,或者打开指定文件夹等等功能. 想要使用Process ...
- P2668 斗地主 贪心+深搜
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...