题面修复
查看原帖
题面修复
482592
minVan楼主2023/11/27 10:46

[NOI2001] 聪明的打字员

题目描述

阿兰是某机密部门的打字员,她现在接到一个任务:需要在一天之内输入几百个长度固定为6的密码。当然,她希望输入的过程中敲击键盘的总次数越少越好。

不幸的是,出于保密的需要,该部门用于输入密码的键盘是特殊设计的,键盘上没有数字键,而只有以下六个键:swap0,swap1,up,down,left,right。为了说明这 66 个键的作用,我们先定义录入区的 66 个位置的编号,从左至右依次为 1,2,3,4,5,61,2,3,4,5,6。下面列出每个键的作用:

  • swap0:按 swap0,光标位置不变,将光标所在的位置的数字与录入区的 11 号位置的数字(左起第一个数字)交换。如果光标已经处在录入区的 11 号位置,则按 swap0 键之后录入区的数字不变。

  • swap1:按 swap1,光标位置不变,将光标所在位置的数字与录入区的 66 号位置的数字(左起第六个数字)交换。如果光标已经处在录入区的 66 号位置,则按 swap1 键之后录入区的数字不变。

  • up:按 up,光标位置不变,讲光标所在位置的数字加 11(除非该数字是 99)。例如,如果光标所在位置的数字为 22,按 up 之后,该处的数字变为 33;如果光标所在位置的数字为 99,按 up 之后,该处的数字不变,光标位置也不变;

  • down:按 down,光标位置不变,讲光标所在位置的数字减 11(除非该数字是 00)。如果光标所在位置的数字为 00,按 down 之后,该处的数字不变,光标位置也不变;

  • left:按 left,光标左移一个位置,如果光标已在录入区的 11 号位置(左起第一个位置)上,则光标不动;

  • right:按 right,光标右移一个位置,如果光标已在录入区的 66 号位置(左起第六个位置)上,则光标不动;

当然,为了使这样的键盘发挥作用,每次录入密码之前,录入区总会随机出现一个长度为 66 的初始密码,而且光标会固定出现在 11 号位置上。当巧妙的使用上述六个特殊键之后,可以得到目标密码,这时光标允许停留在任何一个位置。

现在,阿兰需要你的帮助,编写一个程序,求出录入一个密码需要的最少的击键次数。

输入格式

仅一行,含有两个长度为 66 的数,前者为初始密码,后者为目标密码,两个密码之间用一个空格隔开。

输出格式

仅一行,含有一个正整数,为最少需要的击键次数。

# [NOI2001] 聪明的打字员

## 题目描述

阿兰是某机密部门的打字员,她现在接到一个任务:需要在一天之内输入几百个长度固定为6的密码。当然,她希望输入的过程中敲击键盘的总次数越少越好。

不幸的是,出于保密的需要,该部门用于输入密码的键盘是特殊设计的,键盘上没有数字键,而只有以下六个键:`swap0`,`swap1`,`up`,`down`,`left`,`right`。为了说明这 $6$ 个键的作用,我们先定义录入区的 $6$ 个位置的编号,从左至右依次为 $1,2,3,4,5,6$。下面列出每个键的作用:

- `swap0`:按 `swap0`,光标位置不变,将光标所在的位置的数字与录入区的 $1$ 号位置的数字(左起第一个数字)交换。如果光标已经处在录入区的 $1$ 号位置,则按 `swap0` 键之后录入区的数字不变。

- `swap1`:按 `swap1`,光标位置不变,将光标所在位置的数字与录入区的 $6$ 号位置的数字(左起第六个数字)交换。如果光标已经处在录入区的 $6$ 号位置,则按 `swap1` 键之后录入区的数字不变。

- `up`:按 `up`,光标位置不变,讲光标所在位置的数字加 $1$(除非该数字是 $9$)。例如,如果光标所在位置的数字为 $2$,按 `up` 之后,该处的数字变为 $3$;如果光标所在位置的数字为 $9$,按 `up` 之后,该处的数字不变,光标位置也不变;

- `down`:按 `down`,光标位置不变,讲光标所在位置的数字减 $1$(除非该数字是 $0$)。如果光标所在位置的数字为 $0$,按 `down` 之后,该处的数字不变,光标位置也不变;

- `left`:按 `left`,光标左移一个位置,如果光标已在录入区的 $1$ 号位置(左起第一个位置)上,则光标不动;

- `right`:按 `right`,光标右移一个位置,如果光标已在录入区的 $6$ 号位置(左起第六个位置)上,则光标不动;

当然,为了使这样的键盘发挥作用,每次录入密码之前,录入区总会随机出现一个长度为 $6$ 的初始密码,而且光标会固定出现在 $1$ 号位置上。当巧妙的使用上述六个特殊键之后,可以得到目标密码,这时光标允许停留在任何一个位置。

现在,阿兰需要你的帮助,编写一个程序,求出录入一个密码需要的最少的击键次数。

## 输入格式

仅一行,含有两个长度为 $6$ 的数,前者为初始密码,后者为目标密码,两个密码之间用一个空格隔开。

## 输出格式

仅一行,含有一个正整数,为最少需要的击键次数。

2023/11/27 10:46
加载中...