06 2021 档案
摘要:问题: $n$个集装箱上两艘在中分别为$c_1$和$c_2$的轮船,$w_i$为集装箱$i$的重量,且$\sum_^nw_i \leq c_1 + c_2$ 问是否存在一种合理的装载方案将$n$个集装箱装上轮船?如果有,给出一种方案。 解析 要找到可能的情况,那么我们枚举每个点放在1号船还是2号船的
阅读全文
摘要:问题: 图的$m$着色问题。给定无向连通图$G$和$m$种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求$G$的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。 解析 为了找到所有方案,给每个点都要尝试$m$次。要满足边的两点不同色,染色后要检查周围点的染
阅读全文
摘要:问题: 给定字符集$C={x_1,x_2,\dots,x_n}$和每个字符的频率$f(x_i)$,求关于$C$的一个最优前缀码 解析 将所有的字符丢进一个堆中,按出现频率从小到大排序。按照哈夫曼算法,优先取出两个堆顶的元素,把它们出现的频率加在一起,再丢到堆里,直到只剩一个元素,就是最终得到的答案。
阅读全文
摘要:问题: 共有$n$种物品可放入背包,物品$j$的重量和价值分别为$w_j$, \(v_j\)。若背包的限重为$b$,求最大价值。 解析 设$dp[i][j]$用$j$容量装前$i$个物品能获得的最大值。对于第$i$个物品来说,可以选择放入和不放入,那么我们枚举$j$,就能得到转移方程。 \(dp[i
阅读全文
摘要:问题: 给定序列$a$和$b$,求它们的最长公共子序列。 解析 设$dp[i][j]$为在$a$串的前$i$个字符和$b$串的前$j$个字符中找到的$LCS$。我们枚举$i$和$j$,当$a[i] == b[j]$时,我们让$i$和$j$配对的结果一定时最优的。如果我们此时不选择配对,那么就只能选择
阅读全文
摘要:问题: 设$A_1, A_2, \dots, A_N$为$n$个矩阵的序列,其中$A_i$为$P_ \times P_i$阶矩阵,这个矩阵链的输入用向量$P=<P_0,P_1,\dots,P_n>$给出。 给定向量$P$,确定一种乘法次序,使得基本运算的总次数达到最小。 解析 可以将括号的乘法里看作
阅读全文
摘要:问题: 设$m$万元钱,$n$项投资,函数$f_i(x)$表示将$x$万元投入到第$i$项项目所产生的效益,\(i=1,2,\dots,n\)。问:如何分配这$m$万元,使得投资的总收益最高。 解析 设$dp[i][j]$为在前$i$个项目中投入$j$元能获得的最大收益。当$i = 1$时,我们从$
阅读全文
摘要:问题: 在序列中选取第k小的数字。 解析 我们先选取一个数字$x$,当序列中小于$x$的数字的数量为$k - 1$时,$x$就是我们要找的数字;数量大于等于$k$时,第$k$小的数字小于等于$x$;数量小于$k$时,第$k$小的数字大于等于$x$。我们将序列分成若干个五元组,将这个结论推广到二维序列
阅读全文
摘要:问题: 给定平面上$n$个点,找出其中的一对点的距离,使得在这$n$个点的所有点对中,该距离为所有点对中最小的。 解析 考虑暴力的方法,需要判断所有点对的距离。当$n$较小时,比较容易求解。合并两个区间时,可以考虑两个区间的最小值,只有当两个区间的点对距离不超过这个最小值时才会有意义。我们分别考虑$
阅读全文

浙公网安备 33010602011771号