好巧妙的算法!
对于我这种孤陋寡闻的人,以前根本就没有听说过这种算法,碰到这种题还以为用网络流(蠢),
大概
有一个数列
a
,存在一些关系:
那么我们就可以用一张图来表示这个关系:把y向x连一条边,边权为z,
解释:
假设有一张图,设
dx
为x点到1的最短距离,点y与x点有边连接,距离为
sx,y
那么有:
∀dx<=dy+Sx,y
,
发现和上面的式子长得差不多一样,
建出图以后,我们就可以通过跑最短路来搞出一个可能不唯一的a数列,
如果再多一点限制就可以确定a数列了,