#P14690. [ICPC 2025 Yokohama R] Membership Structure of a Secret Society
[ICPC 2025 Yokohama R] Membership Structure of a Secret Society
Description
一个名称未公开的秘密社团成立于 1899 年,由一位创始人所创立,其名字同样保密。后续的成员通过现有成员的推荐加入该社团。
该社团有一条独特的加入规则被严格执行:推荐可以由一个或多个现有成员进行,但同一个成员小组只能推荐一位新成员。例如,如果一名成员因现有成员小组 的推荐而被允许加入,那么其他任何人都不能被同一个推荐人小组允许加入。然而,小组 推荐另一位新成员是完全允许的。尽管集合 是 的子集,但它们是不同的集合。为保持一致性,创始人的推荐人小组被视为空集。
通过对这个秘密社团的调查,你获得了若干信息片段,它们代表了社团成员结构的某些部分。每个信息片段采用以下形式的陈述之一,其中符号 、 和 是指定社团中某些成员的整数。
-
recommend
表示成员 属于推荐成员 加入的那个小组。 -
not-recommend
表示成员 不属于推荐成员 加入的那个小组。 -
intersection
表示成员 的推荐人小组是成员 的推荐人小组与成员 的推荐人小组的交集。换句话说,所有推荐了 的人也同时推荐了 和 ,并且所有同时推荐了 和 的人也推荐了 。
即使在不同的陈述中,相同的整数也代表同一个成员。另一方面,即使在同一陈述中,不同的整数也可能是同一个人的别名。
获得的信息可能是不完整的,也就是说,某些成员的推荐信息可能缺失,而且可能存在一些在陈述中未被提及的成员。
由于信息来源不一定可靠,可能混入了一些错误信息。你想知道这些陈述是否一致,即是否存在一种推荐关系与所有这些陈述一致。
Input Format
输入包含一个或多个测试用例。输入的第一行包含一个整数 (),表示测试用例的数量。接下来是 个测试用例的描述,每个用例的格式如下。
第一行包含一个整数 ,表示陈述的数量 ()。接下来的 行格式为 "recommend "、"not-recommend " 或 "intersection " 之一,其中 、 和 均为 到 (含)之间的整数。
所有测试用例的 之和不超过 。
Output Format
对于每个测试用例,如果陈述中描述的情况是可能的,则输出一行 yes;否则输出 no。
3
2
recommend 1 2
not-recommend 1 2
2
recommend 1 2
recommend 2 1
3
intersection 1 2 2
recommend 1 3
not-recommend 2 3
no
no
no
Hint
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号