差分约束

差分约束

给定 \(n\) 个数 \(x_1,x_2,x_3……x_n\),给定 \(m\) 个形如 \(x_i-x_j \le c\) 这样的不等式,求 \(x_n-x_1\)的最大值。

\(x_i-x_j \le c\) ,即 \(x_i \le x_j+c\)

最短路三角不等式 \(dis[i] \le dis[j]+c\)

\(x_i\) 对应 \(dis[i]\)\(x_j\) 对应 \(dis[j]\) ,连一条 \(i\)\(j\) 的一条 权值为 \(c\) 的边。

\(x[i] - x[j]\) 最大值 —––> 所有限制条件的最小值 —-> 最短路

\(x[i] - x[j]\) 最小值 —––> 所有限制条件的最大值 —-> 最长路

例题

1.P3275

2.给定 \(n \times n\) 的矩阵,每次可以将某一行或者某一列随便乘一个数,可以是小数

问能否使得所有的都在 \([l,r]\) 之间。

\(n \le 100\)

设第 \(i\) 行第 \(j\) 列的数为 \(a[i][j]\) ,行乘的数是 \(b[i]\) ,列乘的是 \(c[i]\) ,那么我们有:

\[l \le a[i][j] \times b[i] \times c[j] \le r \]

每行乘一个数和除一个数等价,比如乘 \(2\) 可以变成 除 \(0.5\) ,则我们有:

\[l \le a[i][j] \times \le r \]

\[log (l) \le log (a[i][j])+log(b[i])-log(c[j]) \le log(r) \]

\[log(l)-log(a[i][j]) \le log(b[i])-log(c[j]) \le log(r)-log(a[i][j]) \]

posted @ 2023-05-25 20:25  Bloodstalk  阅读(7)  评论(0编辑  收藏  举报