2.1基本算法之枚举题保险箱窃贼翻译

Safecracker【保险箱窃贼】

 1000ms  65536K

描述:

“这个物品锁在一个Klein保险箱里,这个保险箱在二楼书房一幅画的后面。Klein的保险箱极其罕见;不过大多数保险箱和Klein与他的工厂一起在二战中摧毁。幸运的是老布伦博根据研究知道了Klein的秘密,并在他死前写下。一个Klein保险箱有两个区别特征:一个是锁的组合是字母而不是数字,另一个是保险箱的门上刻着一句引语。引语通常在句子开头包含五至十二个不同的大写字母,并且提及一个或更多数字。五个大写字母组合可以打开保险箱。”通过以正确的方式组合所有数字,你将得到一个数字目标(数字目标的组成细节是保密的)。为了寻找正确的组合你必须挑选5个字母v,w,x,y,z使其满足接下来的等式v-w*w+x*x*x-y*y*y*y+z*z*z*z*z=target,每个字母用其在字母表原始位置数字代替(A=1, B=2, ..., Z=26),然后这个组合为vwxyz,如果不止一个组合结果,那该组合方式是词典学最伟大的一种,例如i e,在词典中最后出现的那一个。

例如,给出目标数值1和固定字母ABCDEFGHIJKL,一种可能的解决方案组合是FIECB,因为6-9*9+5*5*5-3*3*3*3+2*2*2*2*2=1.事实上在这种情况有几种解决方案,并且组合结果也能是LKEBA.

Klein认为利用雕刻将数码组合编成密码是安全的,因为即使你知道这个密秘,你也得花费数月努力去尝试所有的组合。当然电脑并不存在。
编一个能找出Klein密码组合的代码为专业部署做准备,利用标准的测试方法论作为每个部门的规定。

输入:

输入由一行或多行组成,包含一个小于12000,000的正整数,然后是5至12个不同的大写字母,结尾将由数字0 和字母END组成。

输出:

每行输出是Klein不同的组合密码,或者‘no solution’如果没有正确的组合。下面有精确样例。

样例输入:

1 ABCDEFGHIJKL
11700519 ZAYEXIWOVU
3072997 SOUGHT
1234567 THEQUICKFROG
0 END

样例输出:

LKEBA
YOXUZ
GHOST
no solution
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值