从集合角度分析f[k][i][j] :从i走到j经过若干个不超过编号k的点能否走到
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];
由于本题中每次只加入一对关系,因此我们可以直接枚举出两边的前驱和后继把它们连接起来即可