7.20

449B - Jzzhu and Cities

我们观察一下这个图大概会是怎么样的。

利用最短路图,我们看到每一个特殊边下面的点可能可以变成其它边的子孙,如果一个特殊边的子孙全部都到了其它边的子孙里,那么这个特殊边可以删掉

删掉不好做,我们考虑每一个特殊边加入是否有变化,如果有更优秀的那么不可以删,那么可以做 k 次 dij

特殊边是连接1和s的边,所以我们感知到,在最短路中,肯定不会走两次特殊边。所以经过特殊边以后,特殊边的子孙们将会互不干扰。

所以我们考虑分为两层,第一层为不走特殊边,第二层为走特殊边,其中第二层又分为k种,分别表示不同特殊边的子孙。

那么最后如果走一次特殊边就可以更短,那莪这个特殊边就不可以删。

我们考虑有没有特殊情况,比如一个点连着两个相同的特殊边,那么我们发现,这种做法,只会删掉一个,因为以最后一次赋值或者第一次赋值(一般应该是第一次)为准

CF1650G Counting Shortcuts

最短路数加严格次短路

posted @ 2026-07-20 22:02  yabnto  阅读(10)  评论(0)    收藏  举报