摘要: 问题: 共有$n$种物品可放入背包,物品$j$的重量和价值分别为$w_j$, \(v_j\)。若背包的限重为$b$,求最大价值。 解析 设$dp[i][j]$用$j$容量装前$i$个物品能获得的最大值。对于第$i$个物品来说,可以选择放入和不放入,那么我们枚举$j$,就能得到转移方程。 \(dp[i 阅读全文
posted @ 2021-06-22 23:42 stff577 阅读(61) 评论(0) 推荐(0)
摘要: 问题: 给定序列$a$和$b$,求它们的最长公共子序列。 解析 设$dp[i][j]$为在$a$串的前$i$个字符和$b$串的前$j$个字符中找到的$LCS$。我们枚举$i$和$j$,当$a[i] == b[j]$时,我们让$i$和$j$配对的结果一定时最优的。如果我们此时不选择配对,那么就只能选择 阅读全文
posted @ 2021-06-22 22:29 stff577 阅读(42) 评论(0) 推荐(0)
摘要: 问题: 设$A_1, A_2, \dots, A_N$为$n$个矩阵的序列,其中$A_i$为$P_ \times P_i$阶矩阵,这个矩阵链的输入用向量$P=<P_0,P_1,\dots,P_n>$给出。 给定向量$P$,确定一种乘法次序,使得基本运算的总次数达到最小。 解析 可以将括号的乘法里看作 阅读全文
posted @ 2021-06-22 21:53 stff577 阅读(70) 评论(0) 推荐(0)
摘要: 问题: 设$m$万元钱,$n$项投资,函数$f_i(x)$表示将$x$万元投入到第$i$项项目所产生的效益,\(i=1,2,\dots,n\)。问:如何分配这$m$万元,使得投资的总收益最高。 解析 设$dp[i][j]$为在前$i$个项目中投入$j$元能获得的最大收益。当$i = 1$时,我们从$ 阅读全文
posted @ 2021-06-22 21:04 stff577 阅读(116) 评论(0) 推荐(0)
摘要: 问题: 在序列中选取第k小的数字。 解析 我们先选取一个数字$x$,当序列中小于$x$的数字的数量为$k - 1$时,$x$就是我们要找的数字;数量大于等于$k$时,第$k$小的数字小于等于$x$;数量小于$k$时,第$k$小的数字大于等于$x$。我们将序列分成若干个五元组,将这个结论推广到二维序列 阅读全文
posted @ 2021-06-22 16:44 stff577 阅读(172) 评论(0) 推荐(0)