#HX2519. 队列与广度优先搜索问题题五:密码转换

提交4 通过1
通过率25%
时间限制1000ms
内存限制128MiB
    ID: 12805 传统题 1000ms 128MiB 尝试: 4 已通过: 1 难度: 普及 上传者: 标签>C++c++编程题浩轩OJ迁移6级2025年寒假六级班题库

题目描述

题目描述

保险箱使用一个s位数字密码锁,从左至右记为第1∼s位,每个数字都是0∼9的整数。我们用一个整数x表示当前显示的s位数字(可能含有前导0),例如,如果s=6,1026表示001026。每次操作密码锁的方法有以下几种:

  1. 将x的第2∼s位向前移动一位,第1位移动到第s位。
  2. 将x变为x×k,其中2≤k≤t。如果得到的数超过s位,只保留最后s位。

密码锁的初始状态只有第s位是1,第1∼s−1位都是0,能打开密码锁的密码用一个s位数p表示。s,t由输入给出,问将p设为什么密码时,从初始状态出发,开锁需要的操作次数最多?如果有多种密码p需要最多操作次数,输出其中最小的p。

例如s=2,t=9时,一种操作密码锁的方式如下:01→(×5)05→(×7)35→(移位)53→(×9)77→(×9)93→(×9)37→(×3)11

如果设置密码为11,至少需要7次操作。

输入格式

两个整数s,t

输出格式

输出一个s位数p,不足s位要补零

输入样例 #1

2 9

输出样例 #1

11

输入样例 #2

2 2

输出样例 #2

81

输入样例 #3

6 2

输出样例 #3

875199

数据范围与约定

2≤s≤6,2≤t≤100。