#P1797. 【模板】Stern-Brocot 树
【模板】Stern-Brocot 树
题目背景
这是一道模板题。(来源)
为了帮小圆打败魔女之夜,你需要回答 Stern-Brocot 树上的询问。
题目描述
约定:
- 本题中,输入/输出的所有分数都必须是既约的。
- 本题中,输入的分数 都满足 。
Task 1:ENCODE_PATH
- 输入格式:
ENCODE_PATH
; - 输出格式:
给定分数 ,你需要按照以下格式输出从 Stern-Brocot 树根走到节点 的路径:
其中 表示走到左儿子或者右儿子, 表示重复 操作几次。
你需要保证 ,。
Task 2:DECODE_PATH
- 输入格式:
DECODE_PATH
- 输出格式: 。
给定从 Stern-Brocot 树根出发的路径,格式如 Task 1 所述,输出节点上的分数。
保证答案满足 。
Task 3:LCA
给定 ,输出 的 LCA 上的分数 。
- 输入格式:
LCA
; - 输出格式: 。
Task 4:ANCESTOR
给定 ,输出 到根的链上,深度为 的节点 的值。如果不存在,输出 。
- 输入格式:
ANCESTOR
; - 输出格式: 。
- 数据范围:。
Task 5:RANGE
给定 ,记在 Stern-Brocot 树中, 的子树中的所有分数构成的集合为 。输出 和 。
特别地,对于 ,输出 ;对于 ,输出 。
- 输入格式:
RANGE
; - 输出格式: 。
输入格式
第一行,一个正整数 ,表示数据组数;
接下来 行,每行若干个整数描述一个任务,格式见【题目描述】。
输出格式
输出 行,表示对应任务的答案,格式见【题目描述】。
10
DECODE_PATH 0
DECODE_PATH 3 R 2 L 1 R 2
ENCODE_PATH 1 1
ENCODE_PATH 5 11
LCA 2 3 3 5
LCA 5439 19294 8291 29410
ANCESTOR 10 1 1
ANCESTOR 300 1000000000 1
RANGE 1 1
RANGE 11 8
1 1
11 4
0
2 L 2 R 4
2 3
148 525
-1
301 1
0 1 1 0
4 3 7 5
提示
- ;
- 输入的所有分数都是既约的;
- 输入的分数 都满足 。