news 2026/9/2 4:37:14

[CSP-S 2023] 密码锁

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[CSP-S 2023] 密码锁

原题

题目描述

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

解题思路

首先,由于密码锁只有五位,所以我们可以对正确密码可能的值进行枚举。现在就只需要判断这个密码是否合法了。

那密码怎么会合法呢?第一:与给出的n个状态不相同且不同的位数为1或2。第二:如果不同的位数为2,就进行判断:如果当前位与密码的这一位的值不相等且下一位相等,则肯定不可以。否则,如果下一位与当前位的差转化为0~9与密码的下一位与当前位的差转化为0~9不等,肯定不可以。

最后统计合法密码的数量就可以了。

#include<bits/stdc++.h> using namespace std; int a[20][10]; int n; bool check(string s){ bool bl=1; for(int i=1;i<=n;i++){ int cnt=0; for(int j=1;j<=5;j++){ if(a[i][j]!=s[j-1]-'0'){ cnt++; } } if(cnt==0||cnt>2)return 0;//如果与给定状态相同或不同的位数大于2,则返回不合法 if(cnt==1)continue; //当不同的位数为二 for(int j=1;j<5;j++){ if(s[j-1]-'0'!=a[i][j]){ if(s[j]-'0'==a[i][j+1]){ //如果当前位与密码的这一位的值不相等且下一位相等 return 0; } else if((s[j-1]-'0'+10-a[i][j])%10!=(s[j]-'0'+10-a[i][j+1])%10){ //如果下一位与当前位的差转化为0~9与密码的下一位与当前位的差转化为0~9不等 return 0; } else break; } } } return 1; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; if(n==1){ cout<<81; return 0; } for(int i=1;i<=n;i++){ for(int j=1;j<=5;j++){ cin>>a[i][j]; } } int cnt=0; for(int i=100000;i<=199999;i++){//枚举正确的密码 int t=i; string s; while(t){ s=char(t%10+'0')+s; t/=10; } s.erase(s.begin());//第一位不用管!! if(check(s)){ cnt++;//密码合法。就统计 } } cout<<cnt; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 22:24:38

36、编程中的算术运算、数组及相关操作

编程中的算术运算、数组及相关操作 在编程领域,尤其是在 shell 脚本编程中,对数字和字符串的操作是非常基础且重要的部分。下面我们将深入探讨这些操作,包括算术运算符的使用、位运算、逻辑运算,以及数组这种数据结构的相关知识。 1. 算术运算符 在 shell 脚本中, ++ …

作者头像 李华
网站建设 2026/9/1 11:27:23

验证码识别系统

验证码检测系统 本文档旨在对验证码检测系统进行全方位的技术剖析。内容涵盖从数据采集与处理、YOLOv8 算法原理与训练细节、数据库深度设计&#xff0c;到前后端分离系统的架构与功能实现。 1. 数据集 (Dataset) 本项目的核心任务是实现对复杂验证码的精准识别。识别目标覆盖了…

作者头像 李华
网站建设 2026/9/2 22:50:37

Clarity AI超分架构解析:构建高效智能的图像增强方案

Clarity AI超分架构解析&#xff1a;构建高效智能的图像增强方案 【免费下载链接】clarity-upscaler 项目地址: https://gitcode.com/GitHub_Trending/cl/clarity-upscaler 在数字内容创作和AI图像处理领域&#xff0c;高分辨率图像生成技术正成为关键竞争力。Clarity …

作者头像 李华
网站建设 2026/9/2 22:29:47

下一场测试革命:技术驱动还是价值回归?

十字路口的测试行业 2025年的测试领域正经历前所未有的范式迁移。一边是生成式AI自动生成测试用例、自动驾驶测试平台替代人工执行&#xff0c;另一边是日益频繁的“测试无用论”与质量危机事件。当技术浪潮裹挟前行时&#xff0c;测试从业者需要清醒叩问&#xff1a;这场革命…

作者头像 李华
网站建设 2026/9/1 16:32:10

基于电动汽车充电的微电网谐波抑制策略研究,包括电动汽车充电负 载模型,风电模型,光伏发现系统...

基于电动汽车充电的微电网谐波抑制策略研究&#xff0c;包括电动汽车充电负 载模型&#xff0c;风电模型&#xff0c;光伏发现系统&#xff0c;储能系统&#xff0c;以及谐波处理模块 风力发电系统仿真最近在研究电动汽车充电对微电网的影响&#xff0c;特别是谐波问题。电动汽…

作者头像 李华
网站建设 2026/9/2 22:23:22

【干货】5 个神级 Prompt 助你 3 分钟读懂顶会论文

你可以根据你当前的阅读深度&#xff0c;直接复制这些 Prompt 发给 ChatGPT、Claude 或 Gemini。建议配合上传 PDF 文件功能使用。1. ⚡️ 速读阶段&#xff1a;快速判断价值 (3分钟)场景&#xff1a; 刚拿到一篇论文&#xff0c;想知道它讲什么的&#xff0c;值不值得细读。Pr…

作者头像 李华