
动态规划
文章平均质量分 61
徐行tag
昨夜西风凋碧树
展开
-
「动态规划专题」
DAG上动态规划「最长,最短路」点集配对问题最长上升/公共子序列(LIS)(LCS)最大连续和货郎担 问题(TSP)矩阵链乘 (MCM)最优二叉排序树 (OBST)...原创 2018-07-30 16:12:21 · 213 阅读 · 0 评论 -
[UVA 11400],dp
题意:现在你要设计一个电力系统,需要用到n种灯泡,每一种灯泡都有它的4个值,电压,电源费用(对于同一种灯泡,只需一个电源),每一个灯泡的费用,该种灯泡必须有的灯泡数量,本来你是想每种灯泡都用对应的电源,既是n个电源,但公司为了省钱,想将一些种类灯泡换成另一种灯泡,让他们公用一个电源,但为了保证场地灯泡足够亮,电压小的可以换成电压大的,电压大的不可以换成电压小的,例如有a,b两种灯泡,电压分别...原创 2018-07-19 21:17:58 · 148 阅读 · 0 评论 -
树形dp
选课题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b)。一个学生要从这些课程里选择M门课程学习,问他能获得的最大学分是多少?输入输出格式输入格式:第一行有两个整数N,M用空...原创 2018-07-06 21:10:59 · 134 阅读 · 0 评论 -
[ n^2输出最长公共子序列 ].
如何求出dp路径?或许有所启发。int f[][];char a[],b[];void output(int i ,int j){ if (i == 0 || j == 0) return ; else { if( a[i-1] == b[j-1]) {output(i-1,j-1);printf("%c",a[i-1])...原创 2018-07-24 11:44:51 · 166 阅读 · 0 评论 -
[ SDFZ ] ,动态规划
动态规划性质: 1.最优子结构 2.无后效性:能够拓扑排序;状态转移初始状态和边界很重要 方便转移状态。滚动数组1.逆向:每个状态只会更新一次 顺向:每个状态更新多次,说明可以用多次...原创 2018-07-17 09:01:11 · 322 阅读 · 0 评论 -
背包问题
01背包例题:采药题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。...原创 2018-07-03 21:03:05 · 150 阅读 · 0 评论 -
最长公共子序列(二分dp,转最长上升)
给出1-n的两个排列P1和P2,求它们的最长公共子序列。输入输出格式输入格式:第一行是一个数n,接下来两行,每行为n个数,为自然数1-n的一个排列。输出格式:一个数,即最长公共子序列的长度输入输出样例输入样例#1:复制5 3 2 1 4 51 2 3 4 5输出样例#1:复制3说明【数据规模】对于50%的数据,n≤1000100% ,n<=100000;code:#include<...原创 2018-07-03 19:13:58 · 703 阅读 · 0 评论 -
最长上升子序列
还是要巩固基础知识,之前打最长上升子序列都是打的二分法,而忽略了dp版的。殊不知很多dp都是从这里面衍生出的。 详细分析一下代码; f[i] 表示到i为止的最长上升子序列。一开始初始化为1,自己本身算1个; 重点是判断,很多有限制条件的dp都是从中衍生的。 比如今天考试的 在草稿纸上写了 n 个数字(A1, A2, A3…Ai) 他想在 n 个数中间去除掉一些数,其他数是否能...原创 2018-09-09 17:12:58 · 159 阅读 · 0 评论