最小路径可重复点覆盖
对任意一个路径可重复点覆盖(不一定最小),如果存在一个点\(p\)被重复覆盖了,那么就任取经过其的两条路径\(···\rightarrow u\rightarrow p\rightarrow v\rightarrow···\)和\(···\rightarrow x\rightarrow p\rightarrow y\rightarrow···\)。如果此时图中已经存在了\((u,v)\)或者\((x,y)\),假设存在\((u,v)\),那么我们可以将\(···\rightarrow u\rightarrow p\rightarrow v\rightarrow···\)变成\(···\rightarrow u\rightarrow v\rightarrow···\),从而\(p\)的覆盖次数减少一,并且仍然是当前图的路径可重复点覆盖(也就是说任何一条路径的边都属于当前图);如果此时图中既不存在\((u,v)\)也不存在\((x,y)\),那么我们随便添加一条边,不妨添加\((u,v)\),从而我们可以将\(···\rightarrow u\rightarrow p\rightarrow v\rightarrow···\)变成\(···\rightarrow u\rightarrow v\rightarrow···\),\(p\)的覆盖次数减少一,并且是当前图的路径可重复点覆盖;一直重复上述过程,最后会得到一个新图,并且得到这个新图的路径点覆盖,而这个新图显然是传递闭包的子图,所以这个新图的路径点覆盖也就是传递闭包的一个路径点覆盖。也就是说原图的任意一个路径可重复点覆盖都可以转化成传递闭包的路径点覆盖;传递闭包的任意一个路径点覆盖,也可以转化成原图的路径可重复点覆盖,只需要将路径点覆盖中不属于原图的边\((x,y)\)替换成原图中\(x\)到\(y\)的路径即可

浙公网安备 33010602011771号