动态规划解题套路框架
动态规划解题套路框架
另外!!!# define maxn 100005最好多5个
509.斐波那契数
322.零钱兑换
斐波那契数
#include <iostream>
#include<bits/stdc++.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
#define maxn 100000
int mem[maxn]={0};int dp(int n)
{if(n==1||n==2){mem[n]=1;return 1;}if(mem[n]!=0){return mem[n];}mem[n]=dp(n-1)+dp(n-2);///确实好久不写了,这里一定要用函数 return mem[n];}int main(int argc, char** argv) {cout<<dp(8);return 0;
}
零钱兑换
#include <iostream>
#include<bits/stdc++.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
#define maxn 10000
int coin[3]={1,2,5};
int coinnum=3;
///int mem[maxn]={maxn};这句话是错的,初始不赋0的话只能赋第一个
int mem[maxn]={0};
int dp(int n)///还剩n元
{if(n==0)///小于零的一会在选择上踢出去 {return 0;}if(mem[n]!=0){return mem[n];}int res=maxn;for(int i=0;i<coinnum;i++){if(n-coin[i]<0){continue;}res=min(res,dp(n-coin[i])+1);}mem[n]=res;return mem[n];}int main(int argc, char** argv) {cout<<dp(11);return 0;
}
错误代码:::!!!!!!
#include <iostream>
#include<bits/stdc++.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
#define maxn 10005
int coin[3]={1,2,5};
int coinnum=3;
///int mem[maxn]={maxn};这句话是错的,初始只能赋0
int mem[maxn]={0};
int dp(int n)///还剩n元
{if(n==0)///小于零的一会在选择上踢出去 {return 0;}if(mem[n]!=maxn){return mem[n];}for(int i=0;i<coinnum;i++){if(n-coin[i]<0){continue;}mem[n]=min(mem[n],dp(n-coin[i])+1);}return mem[n];}int main(int argc, char** argv) {for(int i=0;i<=11;i++)//这里写错成了没有等号,结果一调mem【11】就不相同,为0{mem[i]=maxn;}cout<<dp(11);return 0;
}
动态规划解题套路框架相关推荐
- BFS 算法解题套路框架+几个用于BFS的set与queue用法和技巧
BFS 算法解题套路框架 几个用于BFS的set与queue用法和技巧(set查找visited queue正常用) queue<int>q; set<string>s; in ...
- 一文学会动态规划解题技巧
前言 动态规划(dynamic programming,简称 dp)是工程中非常重要的解决问题的思想,从我们在工程中地图软件上应用的最短路径问题,再在生活中的在淘宝上如何凑单以便利用满减券来最大程度地 ...
- 动态规划解题一般思路
1.递归到动规的一般转化方法 递归函数有n个参数,就定义一个n为值的逆过程的数组,数组的下标是递归函数参数的取值范围,数组元素的值是递归函数的返回值,这样就可以从边界值开始,逐步填充数组,相当于计算递 ...
- 10.2 动态规划算法套路及空间优化 —— Climbing Stairs Unique Paths
这一篇文章从最简单的动态规划题目开始,结合上一节动态规划三要素,以LeetCode两道基础的DP题目阐述DP问题的基本套路解法. 70. Climbing Stairs You are climbin ...
- 动态规划解题思路与总结(三万字)
动态规划 前言 手把手如何写动态规划 最长路径 网格 最长上升子序列问题 求最长上升子序列 最长非严格递增子序列 至少修改多少次能将序列变为上升序列 最长公共上升子序列 分级问题 移动服务 传纸条 排 ...
- 【蓝桥杯刷题冲刺辅导】掌握递归·DFS解题套路,这一文足以?
大家好,我是安然无虞. 目录 一.刷题前和铁汁们唠一唠 1.刷题前须知 2.刷题时套路 <1>套路 <2>背下列常用数 <3>投机取巧:根据数据范围确定算法 ...
- 第一次接触动态规划解题
废话 一道力扣easy没做出来-我是fw, orz.看了题解觉得学到了很多,记录下来和大家分享一下. 题目 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就 ...
- 动态规划解题思路总结归纳(一)
一.动态规划的三大步骤 定义:动态规划,无非就是利用历史记录,来避免我们的重复计算.而这些历史记录,我们得需要一些变量来保存,一般是用一维数组或者二维数组来保存 步骤一:定义数组元素含义,例如定义一个 ...
- 【算法基础】动态规划解题实例之野营问题
问题描述: 假设你要去野营.你有一个容量为6磅的背包,需要决定该携带下面的哪些东西.其中每样东西都有相应的价值,价值越大意味着越重要: 水(重3磅,价值10) 书(重1磅,价值3) 食物(重2磅,价值 ...
最新文章
- Android多媒体开发:照相机
- php函数网,php函数
- 难道冬泳都会断子绝孙?
- 平衡二叉搜索树的创建
- 零基础学python要多久-零基础如何学Python?小白学Python需要多久?
- getset原子性 redis_对比各类分布式锁缺陷,抓住Redis分布式锁实现命门
- Java基础-面向对象进阶-多态包final权限修饰符代码块
- 5. Carla中Recorder(记录器)的使用
- 仿绚丽彩虹播放器程序源码
- 除尘器选型需要考虑的因素
- 追梦算法网----团队数量
- Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis
- 使用yum下载文件报No module named urlgrabber.grabber错
- warframe在路由器上添加虚拟服务器,卡结算warframe方法
- unordered_set使用介绍
- SINS/DR组合导航(一)
- 计算机专业学生必看的网站
- FPGA学习笔记1.1——10人表决器
- 记一次snmp远程连接失败的记录
- 路径规划算法——RRTStar
热门文章
- php mysql-mysqli
- ServletContext2
- 封装各种生成唯一性ID算法的工具类
- Windows Server 2008 如何在IIS中添加MIME类型
- DotNetNuke与MemberShip的结合(五年版) 三步汇总
- linux man命令的1和1p,Linux中man命令的使用方法再解释
- python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑
- android恶意扣费类程序,10款APP违法有害 主要危害涉及恶意扣费等5类
- c语言 号咋打,C语言C语言中的开头#号如何打? – 手机爱问
- python callback函数_回调函数callbacks