拿下技术面上传简历

给定 n=20 个点的无向带权图,边权为正整数,求从 0 号点出发、经过每个点恰好一次的最短路径长度(不要求回到起点)。你用什么状态表示?状态数大约多少?转移怎么写?时间复杂度是多少?如果 n=25,内存 256MB,你还能直接用这个状压 DP 吗?如果边权有负数呢?

数据结构与算法动态规划与贪心1-3 年知识点 1 个

面试官在考什么

判断是否理解状压 DP 的状态设计、位运算转移和适用规模边界。

状态压缩

回答框架 · 前两步

  1. dp[mask][i] 表示已访问点集为 mask、当前停在点 i 的最短路径长度;mask 第 k 位为 1 表示点 k 已访问。
  2. 转移:dp[mask|(1<<j)][j]=min(dp[mask][i]+w[i][j]),其中 i∈mask,j∉mask。

还有 3 条答案要点、 3 层追问、 6 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题