算法
文章平均质量分 84
Mr.bei
这个作者很懒,什么都没留下…
展开
-
【动态规划】背包问题
背包问题给定一组物品,每种物品都有自己的重量的价值,在限定的重量内,我们如何选择,才能使总价值最高。三种背包1、01背包:每个物品只能选一次2、完全背包:每个物品选择次数不限制3、多重背包:每个物品只能选择限定次数一、 01背包核心思想:在每次选择中只需要考虑拿还是不拿,比较两种情况的收益。v [ i ] 为第 i 个物品的重量, w [ i ] 为第 i 个物品的价值;拿第 i 个物品,背包容量有 j 时:dp [ i ] [ j ] = dp [ i - 1 ] [ j - v [原创 2021-05-05 13:42:43 · 282 阅读 · 0 评论 -
C++ STL 常用函数
C++ STL 常用函数vector 数组vector 可以被看成一个“超级数组” ,不会和C语言数组一样被限制长度,它既可以和C语言的数组一样用下标访问,也可以像链表一样动态改变长度。#include<vector> //头文件vector<int> arr1(100);int arr2[100]; //该定义类似C语言数组vector<int> list;list.push_back(1);list.push_back(2);....原创 2021-04-05 11:07:08 · 2661 阅读 · 8 评论 -
从枚举到动态规划
动态规划特点1、重叠子问题2、状态转移方程(最关键)3、最优子结构题型:求最值 核心:穷举解题套路1、明确【状态】2、明确【选择】3、明确 dp函数/数组的定义4、明确 base case动态规划解法代码框架//初始化 base casedp[0][]0][...] = base//进行状态转移for 状态1 to 状态1的所有取值 for 状态2 to 状态2的所有取值 for ... dp[状态1][状态原创 2021-04-02 19:15:03 · 339 阅读 · 5 评论