#L4331. 「CEOI2013」棋盘

    ID: 5620 传统题 1000ms 512MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>树结构导航最低公共祖先(LCA)思想二进制索引处理最优层选择枚举

「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 )