P9752 [CSP-S 2023] 密码锁&&P8814 [CSP-J 2022] 解密

Guten Tag!Schön, dich zu sehen!

今天也是很懒惰的一天呢!所以今天二合一!

题目:[CSP-S 2023] 密码锁

题目描述

小 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

1
0 0 1 1 5

样例输出 #1

81

提示

【样例 1 解释】

一共有 \(81\) 种可能的方案。

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

【样例 2】

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

【数据范围】

对于所有测试数据有:\(1 \leq n \leq 8\)

测试点 \(n\leq\) 特殊性质
\(1\sim 3\) \(1\)
\(4\sim 5\) \(2\)
\(6\sim 8\) \(8\) A
\(9\sim 10\) \(8\)

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

思路

因为这道题的数据——n它比较小,所以直接暴力枚举每一个填0~9的五位数。

步骤

1.输入n和n个通过正确密码拨动一次后形成的错误密码

image

2.通过递归枚举出所有的五位数

image

3.检查枚举出的这个密码是否可以变成n个所有的拨动一次后形成的错误密码

image

完整AC代码

image
image

[CSP-J 2022] 解密

题目描述

给定一个正整数 \(k\),有 \(k\) 次询问,每次给定三个正整数 \(n_i, e_i, d_i\),求两个正整数 \(p_i, q_i\),使 \(n_i = p_i \times q_i\)\(e_i \times d_i = (p_i - 1)(q_i - 1) + 1\)

输入格式

第一行一个正整数 \(k\),表示有 \(k\) 次询问。

接下来 \(k\) 行,第 \(i\) 行三个正整数 \(n_i, d_i, e_i\)

输出格式

输出 \(k\) 行,每行两个正整数 \(p_i, q_i\) 表示答案。

为使输出统一,你应当保证 \(p_i \leq q_i\)

如果无解,请输出 NO

样例 #1

样例输入 #1

10
770 77 5
633 1 211
545 1 499
683 3 227
858 3 257
723 37 13
572 26 11
867 17 17
829 3 263
528 4 109

样例输出 #1

2 385
NO
NO
NO
11 78
3 241
2 286
NO
NO
6 88

提示

【样例 #2】

见附件中的 decode/decode2.indecode/decode2.ans

【样例 #3】

见附件中的 decode/decode3.indecode/decode3.ans

【样例 #4】

见附件中的 decode/decode4.indecode/decode4.ans

【数据范围】

以下记 \(m = n - e \times d + 2\)

保证对于 \(100\%\) 的数据,\(1 \leq k \leq {10}^5\),对于任意的 \(1 \leq i \leq k\)\(1 \leq n_i \leq {10}^{18}\)\(1 \leq e_i \times d_i \leq {10}^{18}\)
\(1 \leq m \leq {10}^9\)

测试点编号 \(k \leq\) \(n \leq\) \(m \leq\) 特殊性质
\(1\) \(10^3\) \(10^3\) \(10^3\) 保证有解
\(2\) \(10^3\) \(10^3\) \(10^3\)
\(3\) \(10^3\) \(10^9\) \(6\times 10^4\) 保证有解
\(4\) \(10^3\) \(10^9\) \(6\times 10^4\)
\(5\) \(10^3\) \(10^9\) \(10^9\) 保证有解
\(6\) \(10^3\) \(10^9\) \(10^9\)
\(7\) \(10^5\) \(10^{18}\) \(10^9\) 保证若有解则 \(p=q\)
\(8\) \(10^5\) \(10^{18}\) \(10^9\) 保证有解
\(9\) \(10^5\) \(10^{18}\) \(10^9\)
\(10\) \(10^5\) \(10^{18}\) \(10^9\)

20分暴力枚举做法

暴力枚举所有有可能的q和p的值

image

正解

image
image
image

每课一学——Deutsch

一、你好:1.Guten Tag.(多用于正式场合) 2.Hallo.(多用于口语)

二、再见:1.Auf Wiedersehen.(多用于正式场合) 2.Tschüs.(口语)

Auf Wiedersehen!Willkommen zu Ihrem nächsten Besuch!

posted @ 2024-10-03 22:44  高振惟  阅读(17)  评论(0)    收藏  举报