DP思想笔记
一、思想
DP也是把复杂的问题分解为许多子问题,与分治法不同的是,分治法的各个子问题互相之间没有联系,而动态规划却有。前一个子问题的结果与下一步的子问题的结果是什么有关系。这就决定了DP算法肯定有一个表来记忆之前问题的结果。
对于一个可用DP解决的问题,可用先对问题进行分析建模。得到边界,最优子结构,状态转换方式。
接着,从边界出发,利用状态转发方式,达到最优结果。
二、例子lcs
要求两个字符串之间的LCS。
先分析如果用暴力破解,很耗时间。
试着把问题规模降低,如果是两个长度为1的字符串求LCS,很简单。
一个长度为1,一个长度为n也很简单。
那么用DP的角度想一下。
边界就是两个长度为1的字符串,
状态转换方式就是(A为长度矩阵)

DP思想笔记的更多相关文章
- 数位DP学习笔记
		
数位DP学习笔记 什么是数位DP? 数位DP比较经典的题目是在数字Li和Ri之间求有多少个满足X性质的数,显然对于所有的题目都可以这样得到一些暴力的分数 我们称之为朴素算法: for(int i=l_ ...
 - java编程思想笔记(1)
		
java编程思想笔记(1) 一,对象的创建和生命周期 对象的数据位于何处?怎样控制对象的生命周期? 在堆(heap)的内存池中动态地创建对象. java完全采用了动态内存分配方式. 二,垃圾回收器 自 ...
 - 到底什么是dp思想(内含大量经典例题,附带详细解析)
		
期末了,通过写博客的方式复习一下dp,把自己理解的dp思想通过样例全部说出来 说说我所理解的dp思想 dp一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,要你求一个 最 ...
 - DP学习笔记
		
DP学习笔记 可是记下来有什么用呢?我又不会 笨蛋你以后就会了 完全背包问题 先理解初始的DP方程: void solve() { for(int i=0;i<;i++) for(int j=0 ...
 - 状压DP学习笔记
		
有的时候,我们会发现一些问题的状态很难直接用几个数表示,这个时候我们就会用到状压dp啦~~. 状压就是状态压缩,就是讲原本复杂难以描述的状态用一个数或者几个数来表示qwq.状态压缩是一个很常用的技巧, ...
 - hdu 3030 Increasing Speed Limits (离散化+树状数组+DP思想)
		
Increasing Speed Limits Time Limit: 2000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
 - DP思想在斐波那契数列递归求解中的应用
		
斐波那契数列:1, 1, 2, 3, 5, 8, 13,...,即 f(n) = f(n-1) + f(n-2). 求第n个数的值. 方法一:迭代 public static int iterativ ...
 - 树形DP 学习笔记
		
树形DP学习笔记 ps: 本文内容与蓝书一致 树的重心 概念: 一颗树中的一个节点其最大子树的节点树最小 解法:对与每个节点求他儿子的\(size\) ,上方子树的节点个数为\(n-size_u\) ...
 - Java编程思想 笔记
		
date: 2019-09-06 15:10:00 updated: 2019-09-24 08:30:00 Java编程思想 笔记 1. 四类访问权限修饰词 \ 类内部 本包 子类 其他包 publ ...
 
随机推荐
- Python内置函数(51)——property
			
英文文档: class property(fget=None, fset=None, fdel=None, doc=None) Return a property attribute. fget is ...
 - solr之环境配置三
			
配置安装Solr到Tomcat 1. 解压 solr4.7.2.zip 2. 将 solr-4.7.2\dist\solr-4.7.2.war拷贝到 apache-tomcat-7.0.55\weba ...
 - WebSocket刨根问底(三)之群聊
			
前两篇文章[WebSocket刨根问底(一)][WebSocket刨根问底(二)]我们介绍了WebSocket的一些基本理论,以及一个简单的案例,那么今天继续,我们来看一个简单的群聊的案例,来进一步了 ...
 - Unity3d之-使用BMFont制作美术字体
			
一.需求 游戏开发中经常遇到需要以美术字(而非字库)做数字显示的情况,通常美术会提供一组包含单个数字(也会有其它字符)的图片,可能是一张整图,也可能是每个数字分开的散图. 在此我以一张整图这种情况为例 ...
 - npm用法
			
查看包信息npm info mongodb 查看包的最新版本npm view mongodb version 安装npm install mongodb@2.2.33 已安装的包修改版本npm ins ...
 - angr进阶(2)C++程序的处理
			
如何应对C++程序 angr只实现了C库,所以应对C++程序,需要使用full_init_state方法,并设置unicorn引擎.csaw_wyvern 并且这个过程相对于C通常会更长 st = p ...
 - linux 远程复制 scp
			
把本地/home/crawler/warning/python/alarmRun.sh 复制到67cralwer用户/home/crawler/warning/python/ 下面 scp -r /h ...
 - [十一]基础数据类型之Character
			
Character与Unicode Character 基本数据类型char 的包装类 Character 类型的对象包含一个 char 类型的字段 该类提供了几种方法来确定字符的类别(小写字母 ...
 - springboot情操陶冶-初识springboot
			
前言:springboot由于其轻便和去配置化等的特性已经被广泛应用,基于时代潮流以及不被鄙视,笔者于是开辟此篇开始认识springboot 前话 springboot是基于spring而开发的轻量级 ...
 - Django学习笔记(6)——Form表单
			
知识储备:HTML表单form学习 表单,在前端页面中属于最常见的一个东西了.基本上网站信息的提交都用到了表单,所以下面来学习Django中优雅的表单系统:Form 表单的主要作用是在网页上提供一个图 ...