#include // Floyd解决传送闭包问题 using namespace std; const int N = 27; int n; // n个变量 int m; // m个不等式 int f[N][N]; // 传递闭包结果 void floyd() { for (int k = 0; k < n; k++) for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) f[i][j] |= f[i][k] & f[k][j]; // i可以到达k,k可以到达j,那么i可以到达j } // 1:可以确定两两之间的关系,2:矛盾,3:不能确定两两之间的关系 int check() { // 如果i> S; // 已确定或者出现了矛盾,就没有必要再处理了,但是,还需要耐心的读取完毕,因为可能还有下一轮,不读入完耽误下一轮 if (k < 3) continue; // 变量只可能为大写字母A~Z,映射到0~25 int a = S[0] - 'A', b = S[2] - 'A'; f[a][b] = 1; // 记录a