题目名称 3931. [CSP 2023S]密码锁
输入输出 lock.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2023-10-22加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:13, 提交:26, 通过率:50%
GravatarBenjamin 100 0.000 s 0.00 MiB C++
Gravatar┭┮﹏┭┮ 100 0.000 s 0.00 MiB C++
GravatarXCstar 100 0.000 s 0.00 MiB C++
Gravatar宇战 100 0.000 s 0.00 MiB C++
Gravatarocean111 100 0.000 s 0.00 MiB C++
GravatarAeeE5x 100 0.000 s 0.00 MiB C++
GravatarBenjamin 100 0.000 s 0.00 MiB C++
Gravatarムラサメ 100 0.000 s 0.00 MiB C++
Gravatar郑霁桓 100 0.000 s 0.00 MiB C++
Gravatarsyzhaoss 100 0.000 s 0.00 MiB C++
关于 密码锁 的近10条评论(全部评论)
暴力A CCF脑子迷糊了
Gravatar┭┮﹏┭┮
2023-10-23 17:10 2楼
回复 @┭┮﹏┭┮ :
给讲一下呗,实在是没看懂
Gravatar此账号已注销
2023-10-23 17:02 1楼

3931. [CSP 2023S]密码锁

★★   输入文件:lock.in   输出文件:lock.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

小 Y 有一把五个拨圈的密码锁。如图所示,每个拨圈上是从 $0$ 到 $9$ 的数字。每个拨圈都是从 $0$ 到 $9$ 的循环,即 $9$ 拨动一个位置后可以变成 $0$ 或 $8$,

因为校园里比较安全,小 Y 采用的锁车方式是:从正确密码开始,随机转动密码锁仅一次;每次都是以某个幅度仅转动一个拨圈或者同时转动两个相邻的拨圈。

当小 Y 选择同时转动两个相邻拨圈时,两个拨圈转动的幅度相同,即小 Y 可以将密码锁从 $\tt{0\;0\;1\;1\;5}$ 转成 $\tt{1\;1\;1\;1\;5}$,但不会转成 $\tt{1\;2\;1\;1\;5}$。

时间久了,小 Y 也担心这么锁车的安全性,所以小 Y 记下了自己锁车后密码锁的 $n$ 个状态,注意这 $n$ 个状态都不是正确密码。

为了检验这么锁车的安全性,小 Y 有多少种可能的正确密码,使得每个正确密码都能够按照他所采用的锁车方式产生锁车后密码锁的全部 $n$ 个状态。

【输入格式】

输入的第一行包含一个正整数 $n$,表示锁车后密码锁的状态数。

接下来 $n$ 行每行包含五个整数,表示一个密码锁的状态。

【输出格式】

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

【输入样例1】

1
0 0 1 1 5

【输出样例1】

81

【样例 1 解释】

一共有 $81$ 种可能的方案。

其中转动一个拨圈的方案有 $45$ 种,转动两个拨圈的方案有 $36$ 种。

【输入输出样例 2】

见选手目录下的 lock/lock2.in 与 lock/lock2.ans。

【数据范围】

对于所有测试数据有:$1 \leq n \leq 8$。

特殊性质 A:保证所有正确密码都可以通过仅转动一个拨圈得到测试数据给出的 $n$ 个状态。