图转侵删
题解的构造我暂时没去理解,一眼没看懂就不理了
赛后自己先想了想,然后和hsz,ymw大爷讨论一番我的想法,没发现什么错
先感谢大爷们对我的帮助_ (:з)∠)_
由于题目要求的是最短路径,我们不妨考虑图的最短路DAG和答案路径
Pans
,找找关系
又因为要回到原点,我们应当考虑两个最短路图:从原点出发的,记为
G1
,从各个点到原点的,记为
G2
然后自然得到一个猜想,
Pans
能拆成
P1+P2,P1∈G1,P2∈G2
因为看起来很对,我们考虑证明它。要证明这个猜想我们先证明一个很像的结论:
在
Pans
上任选一点,被分成的两条路径
1
必有一条在
G1
或
G2
上
在选的点不为
Pans
中原点的前驱或后继的情况下
2
,只要取出前驱后继进行讨论即可证明
2.5
有了这个结论,在一般情况下
3
,猜想是显然正确的
故根据猜想,我们只需要枚举连接
P1,P2
的边,在
G1,G2
上讨论
4
,贡献答案即可
至此问题解决(了吧?大概= =)
看懂了就不必看注释了。。
(1) 两条路径指:原点到选定点,选定点到原点 这两条
(2) 不在这种情况下我没有讨论,不知道结论是否仍然正确
(3) 特殊情况为:1.
Pans
的长度小于4。2.
Pans
只由一条最短路和一个点组成
这些情况不知道是否还能通过枚举边来贡献到答案,但显然可以打几个针对的算法解决
(4) 若在最短路DAG上到达某点的第一条边唯一,则此边为该点的支配边
若枚举的边的两点的支配边不同(或者其中一点没有支配边)则可以贡献答案,否则为非法,不贡献
(2.5)如图
说明:
P1∉G1,P2∉G2,P′1∈G1,P′2∈G2,ABCD
为各路径上最靠近原点的点
考虑反证
当
A≠C
或
B≠D
时,
P1+P′2
或
P′1+P2
将构成合法且更优的答案
5
当
A=C
且
B=D
时,由答案路径定义,
A≠D
,故
B≠C
,
P′1+P′2
将构成合法且更优的答案
5
得证
(5)事实上,答案可能不合法,两路径会在中途经过重边,但若只保留从原点到第一次重边的位置,答案将合法且更优。
更优显然,合法是因为保证了原点的前驱后继不同,就保证了保留下来的路径不会只剩下一个原点
如果有什么定义上的问题可以评论♪(^∇^*)