此题非常神地把一个玄学题目强转为图论题目,大意就是说对于 $a_1x_1 + a_2x_2 + \dots + a_nx_n = B$ 当 $B \in [bmin, bmax]$ 是使得方程存在非负整数解的 $B$ 的个数。
显然我们可以求出 $B \in [1, bmax]$ 的答案和 $B \in [1, bmin - 1]$ 的答案做差。
我们发现如果存在 $B$ 使得方程有非负整数解,那么 $B + a_1$ 一定可以使方程有非负整数解。即,我们可以求出当 $B % a_1 = k$ 时使得方程有非负整数解的最小值 $B_0$ ,最后统计答案时全部相加即可。
所以我们对于所有 $k$ 建一个图,共 $a_0$ 个点,编号为 $0$ 到 $a_1 - 1$ 每一个点都有 $n - 1$ 条边,边权分别为 $a_2, a_3,\dots,a_n$ ,对于点 $i$ ,一条边权为 $p$ 的边需要连向点 $(i + p) % a_1$ 。然后以 $0$ 号点为起点,跑一遍最短路,最后点 $i$ 到点 $0$ 的最短路即为在 $B % a_1 = i$ 时的 $B_0$ 。
为什么取 $0$ 号点为起点呢,因为显然 $B % a_1 = 0$ 时的 $B_0 = 0$ ,即所有的未知数都为 $0$ 。
1 |
|