cf1131D
给出一个n*m关系表,有<>=三种关系,要求为这n+m个对象分配一个值,使得满足约束关系且最大值最小。
用差分约束,>转化为>=x+1。=转化为>=且<=。如果y要比x至少大1,就建立边x指向y。对于这样一张图,满足所有要求其实就意味着能走的边都走(满足关系),不能满足的点就松弛(变大),类似求最长路。
bfs版spfa
1 |
|
cf1131D
给出一个n*m关系表,有<>=三种关系,要求为这n+m个对象分配一个值,使得满足约束关系且最大值最小。
用差分约束,>转化为>=x+1。=转化为>=且<=。如果y要比x至少大1,就建立边x指向y。对于这样一张图,满足所有要求其实就意味着能走的边都走(满足关系),不能满足的点就松弛(变大),类似求最长路。
bfs版spfa
1 | #include<bits/stdc++.h> |