编程题
### 问题描述 多米诺骨牌是一种玩具和游戏,由一组长方形的小方块组成,每个方块可分为两个部分,并在每个部分上标有从零到六或更多个点数。多米诺骨牌的长度通常是宽度的两倍。在游戏中,玩家将多米诺骨牌竖立并排成一行或一列,使相邻的骨牌的点数匹配。一旦某个骨牌被推倒,它会触发连锁反应,将相邻的骨牌推倒。 蓝蓝是一个有严重强迫症的大学生,是个完美主义者。他喜欢对称的形状,比如一个完美的圆形。他的手上有一副私人定制版多米诺骨牌,上面刻的不完全是数字,还有各种字符。这天,他突发奇想,如果严格按照多米诺骨牌的排放规则(相邻两骨牌只有一半相同的图案),能不能把它们放置成一个完整的首尾相接的圆形? ![图片描述](https://dn-simplecloud.shiyanlou.com/questions/uid1830147-20230718-1689648965153) ### 输入格式 第 $1$ 行:一个整数 $N$,代表骨牌的总数。 第 $2$ 到 $N+1$ 行:每行有两个长度不超过 $3$ 的字符串,代表骨牌上的刻的信息,字符串仅包含小写字母和标准数字键对应的可见字符。 ### 输出格式 如果能产生一个符合题目要求的序列,则输出 $YES$,不能则输出 $NO$,对于无法预测的结果则输出 $UNKOWN$。 ### 样例输入1 ```text 3 a b b c c a ``` ### 样例输出1 ```text YES ``` ### 样例输入2 ```text 3 aa b b cc cc z ``` ### 样例输出2 ```text NO ``` ### 说明 骨牌的信息顺序不考虑。 在样例 $1$ 中, `(a,b)`,`(b,c)`,`(c,a)` 可以互相相邻摆放,并符合题目要求围成一圈。 在样例 $2$ 中, `(aa,b)`,`(b,cc)`,`(cc,z)` 无论如何互相摆放,都不符合题目要求围成一圈。 ### 评测数据规模 对于 $30$% 的数据,保证 $3\leq N \leq 50$,且保证对于每个骨牌的信息为两个不超过 $3$ 位的整形形式,保证同一种骨牌最多只出现一次。 对于 $100$% 的数据,保证 $3\leq N \leq 2\times 10^5$,且保证每个骨牌的两个信息不超过 $3$ 位,保证同一种骨牌最多只出现一次。
查看答案
赣ICP备20007335号-2