算法
The sunshine。
实在是太菜了 记忆力也不太好,,我还是写博客记录一下吧wuwuwuwu
展开
-
简单DP(背包问题(9个))
1.01背包问题 01背包经典例题: 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。 输出格式 输出一个整数,表示最大价值。 数据范围 0<N,V≤1000 0<vi,wi≤10转载 2020-07-19 11:25:09 · 548 阅读 · 0 评论 -
简单DP(递推,区间DP)
什么是动态规划 定义: 把多阶段问题转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法(多阶段就是看这个问题是不是一层一层的),(优化问题通常就是求最大值、最小值、方法数等等) 阶段: 把问题分成几个相互联系的有顺序的几个环节,这些环节即为阶段(简单来说就是一层一层的) 状态: 某一阶段的出发位置称为状态,通常一个阶段包含若干状态(上一个阶段的结束位置,通俗点来说,就是现在走到哪了,我是谁,我在哪) 决策: 从某阶段的一个状态演变到下一个阶段某状态的选择(我从哪里来,原创 2020-07-19 11:25:27 · 447 阅读 · 0 评论 -
简单DP(最长公共子序列,最长上升子序列)
最长上升子序列(LIS) **无论是最长上升子序列还是最长公共子序列都不要求连续** 最长上升子序列题目描述: 给一组数据:13,7,9,16,38,24,37,18,44,19,21,22,63,15。求这组数的最长上升子序列? 思想: 首先我们日常定义dp[i],表示以第i个数据为结尾的最长上升子序列的长度,我们假设以第j号数据为尾的最长上升子序列的长度为a,如果现在的这个数据i要大于j的话,那么i的最长上升子序列就不需要从最前面算了,就直接是j的最长上升子序列长度+1 最长上升子序列数据个数求解板原创 2020-07-19 11:25:46 · 199 阅读 · 0 评论