题库/S0132

#S0132. 【23CSPS提高组】密码锁(lock)

    传统题 难度: 进阶 标签>一本通枚举对象、范围与合法性模拟状态、步骤与事件
时间限制1000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

S0132 · 【23CSPS提高组】密码锁(lock)

退出在线编程模式
进阶 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制512 MiB
通过率—0 / 0 次提交

题目描述

小 Y 有一把五个拨圈的密码锁。如图所示,每个拨圈上是从 00 到99 的数字。每个拨圈都是从 00 到99 的循环,即 99 拨动一个位置后可以变成 00 或88, 题面插图 因为校园里比较安全,小 Y 采用的锁车方式是:从正确密码开始,随机转动密码锁仅一次;每次都是以某个幅度仅转动一个拨圈或者同时转动两个相邻的拨圈。 当小 Y 选择同时转动两个相邻拨圈时,两个拨圈转动的幅度相同,即小 Y 可以将密码锁从 00115 转成11115,但不会转成 12115。 时间久了,小 Y 也担心这么锁车的安全性,所以小 Y 记下了自己锁车后密码锁的 nn 个状态,注意这 nn 个状态都不是正确密码。 为了检验这么锁车的安全性,小 Y 有多少种可能的正确密码,使得每个正确密码都能够按照他所采用的锁车方式产生锁车后密码锁的全部 nn 个状态。

输入

输入的第一行包含一个正整数 nn,表示锁车后密码锁的状态数。 接下来 nn 行每行包含五个整数,表示一个密码锁的状态。

输出

输出一行包含一个整数,表示密码锁的这 nn 个状态按照给定的锁车方式能对应多少种正确密码。

输入样例

1
0 0 1 1 5

输出样例

81

提示

【样例 1 解释】 一共有 8181 种可能的方案。 其中转动一个拨圈的方案有 4545 种,转动两个拨圈的方案有 3636 种。 【数据范围】 对于所有测试数据有:1≤n≤81≤n≤8。

测试点 n≤ 特殊性质
1∼31无
4∼52无
6∼88A
9∼108无
特殊性质 A:保证所有正确密码都可以通过仅转动一个拨圈得到测试数据给出的 $n$ 个状态。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共4个测试点,非原站或官方原始数据。总分100分。