图论建模

差分约束

模板

现在有一个有 \(n\) 个未知数, \(m\) 个不等式的不等式组:

\[\left\{ \begin{matrix} x_{a_1}-x_{b_1} \le w_1 \\ x_{a_2}-x_{b_2} \le w_2 \\ \vdots \\ x_{a_m}-x_{b_m} \le w_m \\ \end{matrix} \right. \]

找到一组满足这个不等式组的解。

思路:

对于一个不等式 \(x_{a_i}-x_{b_i} \le w_i\),把 \(x_{b_i}\) 移到右边得 \(x_{a_i} \le x_{b_i}+w_i\),你会发现这个和最短路的式子很像。

具体而言,最短路的松弛操作为对于每一条边 \((u,v,w)\),在 \(dis_v \ge dis_u+w\) 时我们会进行一次更新,则最终都对于每一条边会有 \(dis_v \le dis_u+w\),发现这两个式子是类似的,那么我们考虑对于每个不等式,连一条 \((b_i,a_i,w_i)\) 的边跑最短路即可。

由于图不一定是连通图且可能有负环,我们建一个超级源点并跑 Bellman-Ford 或 SPFA,如果有负环则输出无解。

扩展:

严格小于:如果是整数域则转化为 \(x_{a_i} \le x_{b_i} +w_i-1\),如果是实数域则转化为 \(x_{a_i} \le x_{b_i} +w_i-eps\)。

等于:拆成 \(x_{a_i}-x_{b_i} \le w_i\) 和 \(x_{a_i}-x_{b_i} \ge w_i\) 即可。

同余最短路

模板

给定正整数 \(x,y,z\),求集合 \(\{ax+by+cz \mid a,b,c \in \mathbb N,ax+by+cz \le h\}\) 的大小。

设 \(d_i(i<x)\) 表示使得 \(by+cz \equiv i \pmod x\) 的最小的 \(by+cz\),其中 \(b,c\) 为正整数。则答案为 \(\displaystyle \sum_{i=0}^{x-1} [H \ge d_i] \frac{H-d_i}{x}+1\)。

显然 \(d_0=0\)。考虑 \(d_i\) 可以通过 \(+y,+z\) 扩展到 \(d_{(i+y) \bmod x}\) 和 \(d_{(i+z) \bmod x}\),那么我对于每个能扩展到我当前的 \(i\) 的所有值取最小,则对于 \(d_i\) 有 \(d_{(i+y) \bmod x} \le d_i+y,d_{(i+z) \bmod x} \le d_i+z\)。

发现这个 \(d\) 很像最短路的 \(dis\),考虑建完边后以 \(0\) 为源点跑最短路就可以得到所有的 \(d_i\),然后算答案即可。

posted @ 2026-09-23 19:36  z_Sqr  阅读(12)  评论(1)    收藏  举报