A71515 | 击鼓传花
来源编程题
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
在一次班级联欢活动中,大家正在玩击鼓传花的游戏。
班里共有若干位同学,每位同学都有一个唯一的名字。 击鼓开始后,花会在同学之间不断传递。
活动开始前,老师制定了 N 条固定的传花规则:
第 i 条规则规定:
当名字为 S_i 的同学拿到花时,下一次一定会把花传给名字为 T_i 的同学。
所有规则同时生效,且满足:
- 每个名字为 S_i 的同学 恰好有一条传花规则。
- 所有 S_i 两两不同。
- 所有 T_i 两两不同。
花在游戏开始时,可以交到任意一位同学手中。
如果击鼓游戏一直不叫停,那么花将会按照上述规则不断传递下去。 一旦花 无法继续传递,游戏就会结束,最后拿到花的同学需要表演节目。
请你判断: 是否存在某种情况,使得花可以一直传递下去,游戏永远不会结束?
输入格式
第 1 行输入一个整数 N,表示有 N 条传递规则。
接下来 N 行,每行输入两个字符串 S_i 和 T_i,表示第 i 条规则。
输出格式
如果存在一种传递过程,使得花可以一直传下去,输出 Yes,否则输出 No。
输入输出样例
输入 #1
2 b m m d
输出 #1
Yes
输入 #2
4 alpha beta beta gamma gamma delta delta epsilon
输出 #2
Yes
输入 #3
4 alpha beta beta gamma gamma alpha delta epsilon
输出 #3
No
样例 1 说明
花传递的顺序为:b → m → d。
无论花从谁开始,最终都会传到 d,之后无法继续传递,游戏结束。
数据范围
对于所有的测评数据,满足 1 \le N \le 10^5,S_i, T_i 为长度不超过 8 的小写字母字符串,所有 S_i 两两不同,所有 T_i 两两不同。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?