差分约束系统

来源:互联网 发布:建筑学工作 知乎 编辑:程序博客网 时间:2024/05/18 12:02

好巧妙的算法!

对于我这种孤陋寡闻的人,以前根本就没有听说过这种算法,碰到这种题还以为用网络流(蠢),


大概

有一个数列a,存在一些关系:ax<=ay+z(z)
那么我们就可以用一张图来表示这个关系:把y向x连一条边,边权为z,
解释:
假设有一张图,设dx为x点到1的最短距离,点y与x点有边连接,距离为sx,y
那么有:dx<=dy+Sx,y
发现和上面的式子长得差不多一样,

建出图以后,我们就可以通过跑最短路来搞出一个可能不唯一的a数列,
如果再多一点限制就可以确定a数列了,

例题

【JZOJ3430】DY引擎

0 0
原创粉丝点击