首页 > 其他分享 >动态规划理论总结

动态规划理论总结

时间:2024-09-16 15:12:59浏览次数:1  
标签:总结 状态 递归 重复子 问题 最优 动态 规划 转移

三个特征

  • 最优子结构

    问题最优解包含子问题的最优解,可以通过子问题得到最优解。

  • 无后效性

    两层含义:

    1. 在后面的推到过程中,只关心前面的状态值,不关心这个状态是怎么一步步推导出来的。
    2. 前面的状态如果已经确定,就不会收到后面状态影响
  • 子问题重叠

    不同的决策序列,到达某个相同的阶段是,可能产生重复的状态

方法

  1. 状态转移法

    首先,使用搜索。

    其次,画出递归树。

    最后,看是否存在重复子问题,以及重复子问题是如何产生的,以此寻找规律,看能否用 DP 解决

  2. 状态转移方程法

    分析某个子问题如何通过子问题递归求解,以此来写转移方程

参考文章

标签:总结,状态,递归,重复子,问题,最优,动态,规划,转移
From: https://www.cnblogs.com/tyccyt/p/18416297

相关文章

  • 电商导购平台的动态扩展与缩容策略
    电商导购平台的动态扩展与缩容策略大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在电商导购平台的开发与运维过程中,动态扩展与缩容策略是确保系统在高峰期和低谷期都能平稳运行的关键手段。通过合理的扩展和缩容策略,不仅可以优化资源利用率,还......
  • mysql 常用知识点总结
    MySQL是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解MySQL的语法对数据库管理和操作非常重要。以下是MySQL语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据等内容。1.基础概念数据库(Database):数据库是存储数据的容器,里面可以包含......
  • 2024.9.16 上午 总结(考 DS)
    T1我的做法:合并->并查集。类似建Kruskal重构树。询问跑LCA。注意并查集合并要把两个根都变成一个新点的儿子,而不是把一个作为另一个的儿子。(可能类似建[边](?)Kruskal重构树)要特判询问时\(x=y\)的情况(好像是输出\(0\))。lzh的做法:连出一棵树,边的边权是......
  • 【洛谷 P1216】[USACO1.5] [IOI1994]数字三角形 Number Triangles 题解(动态规划)
    [USACO1.5][IOI1994]数字三角形NumberTriangles题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。在上面的样例中,从的路径产生了最大权值。输入格式第一个行一个正整数......
  • 9.15 比赛总结
    突然想起来自己把比赛总结的好习惯忘掉了,所以现在重新拾起,故名曰《朝花夕拾》。T1出了个大阴间题看数据范围明显状压。很明显,\(a,b\)分成两部分处理。\(f_{s,i}\)表示状态为\(s\),\(a=i\)时的所有情况之和,还要计算\(num_{s,i}\)表示此时情况数。\(b\)直接递推模拟即可......
  • 【油猴脚本】00008 案例 Tampermonkey油猴脚本,动态渲染表格-实现页面动态-添加表格列,
    前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......
  • STL-vector容器总结
    vector(向量)是C++标准模板库(STL)中最常用的容器之一,它提供了动态数组的功能,可以存储任意类型的元素。vector具有自动管理内存、支持随机访问、动态调整大小等优点,非常适合用于需要频繁增删元素或未知大小的数组场景。下面是对vector的总结和常见用法。先复习一下c++中常用的......
  • 动态规划——数学模型精解
    动态规划是运筹学的一个分支,主要用于求解多阶段决策过程的优化问题。1950年代初,R.E.Bellman提出了最优性原理,将复杂的多阶段问题分解为一系列单阶段问题逐步求解,开创了动态规划这一方法。1957年,他出版了《DynamicProgramming》,成为该领域的经典著作。动态规划自问世以来,在经济管......
  • Python调用C语言动态链接库
    调用方法如果觉得Python性能不够,可以使用C、C++或Rust、Golang为按标准C类型。为Python编写扩展。Python通过自带的ctypes模块,可以加载并调用C标准动态链接库(如.ddl或.so)中的函数。常用的操作为:importctypes#加载动态链接库lib=ctypes.CDLL("./xxx.so")#声明要调......
  • 20240915 总结
    这周VP了两场Div.2。均获得较高名次,可能之后需要VPARC这种有点强度的比赛更好一点。联考:20240909T1又是数学。T2唐氏了。注意到有结论,一个合法路径必定可以调整到经过一个在时间上正好能走的边。然后就简单了。正着反着dij,然后\(O(m)\)合并。T3更为唐氏,场上好像......