目录 @description@ @solution@ @accepted code@ @details@ @description@ 一个 n 个点的无向简单的连通图,编号从 0 到 n-1。 现给出每个点到点 0 的距离 dist0[]、每个点到点 1 的距离 dist1[],还原整张图,或判断无解。 Constraints n 在 2 到 50 之间。 dist0 与 dist1 中的元素都在 0 到 n-1 之间。 Examples 0) {0,2,1} {2,0,1} Returns: { "NNY", "NNY", "YYN" } 整张图为 0 - 2 - 1。 1) {0,2,1} {1,0,2} Returns: { } dist0[1] ≠ dist1[0]。 @solution@ 根据三角形不等式,假如 u 与 v 之间有边,则 |dist0[u] - dist0[v]| ≤ 1 且 |dist1[u] - dist1[v]| ≤ 1。 如果 u, v 之间可以连边(即满足三角形不等式),则连 (u, v)。 显然边连的越多,点之间的距离越精确。 所以要是有解,则上面的连边方案一定可以得到一个合法解。 我们连完边过后再跑两边 bfs 检验一下这个图是否满足 dist0 与 dist1 的限制。 @accepted code@ #include<queue>