#L4331. 「CEOI2013」棋盘
「CEOI2013」棋盘
题目描述
Mirko 和 Slavko 有一个新的棋盘游戏。游戏棋盘类似于一棵完整的无限二叉树。更准确地说:
- 棋盘由节点和连接它们的双向道路组成
- 根节点位于棋盘顶部,称为第 0 层
- 每个节点有两个子节点:左子节点和右子节点,分别位于父节点的左下方和右下方
- 子节点的层级 = 父节点层级 + 1
- 除了父子之间的垂直连接外,每一层的所有节点按从左到右的顺序用道路连接(形成水平链表)

图1:棋盘结构(对应第二个样例)
移动规则
每一步可以从一个节点沿一条道路移动到另一个不同节点,用以下字符表示:
| 字符 | 移动方向 |
|---|---|
1 |
当前节点 → 左子节点 |
2 |
当前节点 → 右子节点 |
U |
当前节点 → 父节点 |
L |
当前节点 → 同一层左侧相邻节点 |
R |
当前节点 → 同一层右侧相邻节点 |
示例:从根节点出发,路径 221LU 会到达图中标记为 A 的节点。
问题
给定从根节点到节点 A 的路径和从根节点到节点 B 的路径,求从 A 到 B 的最少步数。
如果路径指向同一节点,输出 0。
输入格式
- 第一行:字符串,表示根节点到第一个节点的路径
- 第二行:字符串,表示根节点到第二个节点的路径
路径保证有效(每一步都可执行)。
输出格式
一行,一个整数,表示最少步数。
样例
样例 1
输入:
111RRRRRRR
222
输出:
0
样例 2
输入:
221LU
12L2
输出:
3
样例 3
输入:
11111
222222
输出:
10
数据范围
设 ( D ) 为两条路径访问的所有节点中的最大层数。
- 20% 数据:( D \leq 10 )
- 40% 数据:( D \leq 50 )
- 70% 数据:( D \leq 1000 )
- 100% 数据:输入字符串长度 ≤ ( 10^5 )