建议列一个关系图 列出题目所给的关系图,对于一个物种x,有 那么为了列出这三种关系,我们需要将域扩大到原来的三倍(n*3),定义x类,则x+n是它捕食的一类,x+2n是捕食它的一类 那么d == 1时,x与y+n,y+2n在同一层的话为矛盾 对于d == 2,我们将关系图补全 我们可以清晰看到x与y,yy不是同一类,如果出现这样的关系即为矛盾。 归并时按照图中关系归并即可。 下面是代码 /* NC16884 食物链 */ /* 2024.3.17 扩展域并查集*/ //开三倍的n,表示同类,被x吃的类,能吃x的类 #include<bits/stdc++.h> using na...