、

P7417-USACO21FEB-Minimizing-Edges-P

题意

给出一张无向图,构造一张新图使得对于所有 \(u\in \{ 1, \ldots ,n \}\),如果原图存在一条从 \(1\) 到 \(u\) 长度为 \(b\) 的路径,那么要求新图也得有。求新图最少边数。

思路

我们考虑如果你能走到这个点按一个最短路,那么你可以在原题通过来回走一条边走到一个和这个最短路长度奇偶性相同的情况。那么我们本质是要求这个点在新图中存在一个奇偶最短路都和原图相同的点。我们可以认为不关心它们的大小性质直接记为 \((x,y)\),其中 \(x<y\)。我们发现我们甚至不关心它们具体是什么,我们只需要新图中 \((x,y)\) 的数量与原题相同即可。

考虑一个 \((x,y)\) 能怎么构造出来。

  1. 从 \((x-1,y-1)\) 来,非常显然。
  2. 一个贡献奇数最小值,一个贡献偶数最小值。即从 \((x-1,y+1)\) 和 \((x+1,y-1)\) 来。

对于操作 \(2\),我们想的是为什么不能是 \((x,y-1)\) 和 \((x-1,y)\),显然因为这两个的奇偶要不同。

特别的,如果 \(x+1=y\) 那么第二条就是在 \((x,y)\) 之间连边。

我们考虑肯定是从 \((x-1,y-1)\) 来就太棒了,只需要 \(1\) 条边。但是有可能有的点没有这样的来源于是只能选择横向连边。那么对于它右边的点由于连了一些这样的边所以也需要再向另一侧贡献。

我们发现对于 \(2\),它们的 \(x+y\) 的值相同。于是我们考虑按 \(x+y\) 为第一关键字,\(x\) 为第二关键字排序。按层考虑。

对于 \((x,y)\),我们考虑 \((x-1,y+1)\) 是否有横向的边连过来,记为 \(w\)。然后我们考虑当前的个数是 \(s\)。考虑如果 \(w\le s\),那么我们可以先向右连 \(w\) 的边,因为不光代价为 \(1\) 还可以辅助后面的点。对于剩下的如果有 \((x-1,y-1)\) 就连否则就只能也向右连了。对于 \(w>s\),我们直接考虑全部向右连即可。

对于如果没有右侧的点了,如果 \(x+1=y\) 则我们只需要连 \(\frac{w}{2}\) 条边,因为一条边这么连可以有多个贡献。否则我们需要自己连自环 \(w\) 条边。

特别的,如果图是一个二分图那么只有奇最短路或者偶最短路,那么直接特判按照最短路树的方法构造有 \(n-1\) 条。

posted @ 2026-09-24 14:48  tanghg  阅读(5)  评论(0)    收藏  举报