欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1025D.Recovering BST
Recovering BST
题目描述
仓鼠 Dima 喜欢啃各种各样的东西:笼子、木棍、不良出题人,甚至还有树!
最近,他发现了一棵二叉搜索树,本能地啃掉了它所有的边,把顶点搞得一团糟。Dima 知道,如果辛辛苦苦组装了这棵树很久的 Andrew 回到家,看到他精心打造的作品被毁了,一定会非常生气。
为了避免这种事发生,Dima 必须把这棵二叉搜索树恢复原状。幸运的是,他注意到:任何两个有边直接相连的顶点,它们的最大公约数都大于 。
请帮 Dima 构造出这样一棵二叉搜索树,或者判断这不可能做到。二叉搜索树的定义和性质可以点击这里查看。
输入
第一行包含顶点个数 ()。
第二行包含 个互不相同的整数 ()—— 按升序排列的各个顶点的值。
输出
如果能够重新组装出一棵二叉搜索树,使得任意一条边所连接的两个顶点的最大公约数都大于 ,则输出 "Yes"(引号仅为清晰起见)。
否则输出 "No"。
样例
样例 1
输入:
6
3 6 9 18 36 108
输出:
Yes
样例 2
输入:
2
7 17
输出:
No
样例 3
输入:
9
4 8 10 12 15 18 33 44 81
输出:
Yes
样例说明
第一个样例中一种可能的树形结构如下图所示。
第三个样例中一种可能的树形结构如下图所示。
在线编程 IDE
建议全屏模式获得最佳体验
键盘快捷键
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |
第 1 行,第 1 列
0 字符
-
最近自测结果
暂未运行
最近递交结果
暂无递交记录