墨墨的等式【同余最短路模板题】

题目连接(提交为模板)
不妨任意取一个\(a[i]\),假设除了\(a[i]\),其余的\(a\)能够组成的所有\(b\)集合为\(S\)。对集合中的每一个元素对\(a[i]\)取模分成\(a[i]\)类,显然当两个元素结果一样时,较大的那个元素可以有较小的那个元素加上若干个\(a[i]\)表示出来。所以我们设\(dis[i]\)表示集合\(S\)中最小的元素,且此元素\(mod a[i]==i\)。用spfa迭代解法即可。一般\(a[i]\)取最小值,使复杂度最小。

posted @ 2021-09-03 23:49  最爱丁珰  阅读(38)  评论(0编辑  收藏  举报