华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1005|回复: 0
打印 上一主题 下一主题

P1949 聪明的打字员

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2018-5-12 23:28:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://www.luogu.org/problemnew/show/P1949

题目描述
阿兰是某机密部门的打字员,她现在接到一个任务:需要在一天之内输入几百个长度固定为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的数,前者为初始密码,后者为目标密码,两个密码之间用一个空格隔开。

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

输入输出样例
输入样例#1:
123456 654321
输出样例#1:
11

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 04:40 , Processed in 0.104926 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表