7.20
449B - Jzzhu and Cities
我们观察一下这个图大概会是怎么样的。
利用最短路图,我们看到每一个特殊边下面的点可能可以变成其它边的子孙,如果一个特殊边的子孙全部都到了其它边的子孙里,那么这个特殊边可以删掉
删掉不好做,我们考虑每一个特殊边加入是否有变化,如果有更优秀的那么不可以删,那么可以做 k 次 dij
特殊边是连接1和s的边,所以我们感知到,在最短路中,肯定不会走两次特殊边。所以经过特殊边以后,特殊边的子孙们将会互不干扰。
所以我们考虑分为两层,第一层为不走特殊边,第二层为走特殊边,其中第二层又分为k种,分别表示不同特殊边的子孙。
那么最后如果走一次特殊边就可以更短,那莪这个特殊边就不可以删。
我们考虑有没有特殊情况,比如一个点连着两个相同的特殊边,那么我们发现,这种做法,只会删掉一个,因为以最后一次赋值或者第一次赋值(一般应该是第一次)为准
CF1650G Counting Shortcuts
最短路数加严格次短路

浙公网安备 33010602011771号