同余最短路

[国家集训队]墨墨的等式吊打力~


例题:P3403 跳楼机

给定x,y,z105,h2631x,y,z \leq 10^5,h\leq 2^{63}-1,求解a0x+a1y+a2z,0aia_0x+a_1y+a_2z,0 \leq a_i
[1,h][1,h]的可能取值个数。

只考虑a1y+a2za_1y+a_2z的情况,定义did_i为前者式子得到的最小的数pp,使得pi (mod x)p \equiv i ~(\bmod~ x)

考虑类似差分约束的建图情况,对于ii建边:

1
2
addedge(i,(i+y)%x,y)
addedge(i,(i+z)%x,z)

跑一次最短路即可。

根据前面的定义,设di=pd_i=p,故可以产生贡献:

hdix+1\frac{h-d_i}{x}+1

xx的剩余系计算贡献即可(注意11也算可达)。

最好选择最小的数作为xx,使得空间最小。

接着就可以来鞭尸了:[国家集训队]墨墨的等式

Author: cjh-hhz
Link: https://cjh-hhz.github.io/69daaf3eab6e.html/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.