在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。
考虑一个约束满足问题的简化版本:假设 代表程序中出现的变量,给定 个形如 或 的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。现在给出一些约束满足问题,请分别对它们进行判定。
Constraints
,
Solution
直接离散化后使用并查集维护即可。先处理相等关系,再处理不相等关系。
Code
1 |
|
Living is do or die.
在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。
考虑一个约束满足问题的简化版本:假设 x1,x2,x3,… 代表程序中出现的变量,给定 n 个形如 xi=xj 或 xi≠xj 的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。现在给出一些约束满足问题,请分别对它们进行判定。
T≤10 , n≤106
直接离散化后使用并查集维护即可。先处理相等关系,再处理不相等关系。
1 | #include<cstdio> |