FZU 2158 数字密码

本文介绍了一种解决密室逃脱游戏中寻找最短可行密码的方法。通过7进制状态压缩来表示每个人获得的密码子序列的匹配长度,并采用动态规划策略,尝试0-9每个数字进行转移,最终确定最小密码长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Problem Description

在密室逃脱游戏中,大家被困在一个密室中,为了逃出密室,需要找到正确的数字密码,于是大家分头行动,分别找到了密码的子序列,而后大家将得到的线索集中整理分析,大家想知道密码最少是多少位。

 Input

第一行输入一个整数T,表示数据组数。接下来T组数据,对于每组数据,第一行输入一个整数n (1<=n<=7),表示有n个人,接下来第2到n+1行每行输入一串数字,分别表示第i个人得到的密码子序列(长度<=6)。

 Output

对于每组数据,请输出个数字,即可行密码的最短长度。

 Sample Input

1 3 123 14 21

 Sample Output

5
 
dp, 用7进制状态压缩表示每个人的串当前匹配长度。
转移的时候用0-9每个数字去尝试,dp[try(st, i)]=dp[st]+1。

转载于:https://www.cnblogs.com/mandora/p/3672821.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值