news 2026/8/22 2:22:03

[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/8/21 15:40:55

【AI通识】生成式人工智能通识

生成式人工智能通识生成式人工智能概述生成式AI的核心优势生成式AI的核心架构生成式人工智能的伦理及安全伦理原则数据安全挑战AI幻觉的优化方法提示词提示词的设计原则提示词典型方法提示注入攻击AIGC应用场景文案创作推荐系统大模型精调典型方法生成式人工智能概述 生成式人…

作者头像 李华
网站建设 2026/8/21 13:30:18

24、Linux 设备监控与硬件故障排查指南

Linux 设备监控与硬件故障排查指南 1. 设备监控 当设备配置完成后,需要对其进行监控,以确保系统能够识别这些设备,并使其按预期运行。以下是一些常用的设备监控命令: 1.1 lsdev 命令 lsdev 命令用于显示内核所报告的系统硬件的各种信息。它从 /proc/ 目录下的三个文…

作者头像 李华
网站建设 2026/8/21 16:06:36

好写作AI“第二大脑”实证:如何让研究者的灵感“越用越有”?

当你的思维火花闪过&#xff0c;却被混乱的笔记和文献淹没时&#xff0c;好写作AI正在成为你永不遗忘、随时联动的“外接脑区”。 “文献读了就忘&#xff0c;灵感记了就丢”——这恐怕是学术研究中最令人沮丧的循环。认知科学告诉我们&#xff0c;人类工作记忆平均只能保持 4-…

作者头像 李华
网站建设 2026/8/21 23:43:06

常用API day3

JDK7时间类&#xff1a; Date 时间------Date时间类是一个JDK写好的javabean类&#xff0c;用来描述时间&#xff0c;精确到毫秒。利用空参对象创建的对象&#xff0c;默认表示系统当前的时间。利用有参构造创建的对象&#xff0c;默认表示系统当前的时间。 如何创建日…

作者头像 李华
网站建设 2026/8/22 0:09:09

BG3 Mod Manager终极指南:解决模组管理的五大痛点

BG3 Mod Manager终极指南&#xff1a;解决模组管理的五大痛点 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 想要在《博德之门3》中自由定制游戏体验&#xff0c;却总被模组管理问题困…

作者头像 李华