
算法
The sunshine。
实在是太菜了 记忆力也不太好,,我还是写博客记录一下吧wuwuwuwu
展开
-
简单DP(背包问题(9个))
1.01背包问题01背包经典例题:有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤10转载 2020-07-19 11:25:09 · 604 阅读 · 0 评论 -
简单DP(递推,区间DP)
什么是动态规划定义:把多阶段问题转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法(多阶段就是看这个问题是不是一层一层的),(优化问题通常就是求最大值、最小值、方法数等等)阶段:把问题分成几个相互联系的有顺序的几个环节,这些环节即为阶段(简单来说就是一层一层的)状态:某一阶段的出发位置称为状态,通常一个阶段包含若干状态(上一个阶段的结束位置,通俗点来说,就是现在走到哪了,我是谁,我在哪)决策:从某阶段的一个状态演变到下一个阶段某状态的选择(我从哪里来,原创 2020-07-19 11:25:27 · 540 阅读 · 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 · 239 阅读 · 0 评论