news 2026/5/7 18:56:48

[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/5/2 8:28:45

自动门MCGS7.7与三菱FX3U PLC联机程序新探索

自动门MCGS7.7和三菱fx3uPLC联机程序新&#xff0c;带io表&#xff0c;运行效果视频&#xff0c;com1口通讯 最近在做一个自动门项目&#xff0c;涉及到MCGS7.7与三菱FX3U PLC的联机&#xff0c;和大家分享一下其中的历程与心得&#xff0c;还会附上IO表以及运行效果视频链接哦…

作者头像 李华
网站建设 2026/4/21 8:39:54

计算机毕业设计springboot基于vue的手机商城系统 基于 SpringBoot+Vue 的移动端数码商城平台 前后端分离架构下的智能手机在线销售系统

计算机毕业设计springboot基于vue的手机商城系统rg2215p1 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。移动互联网把“买手机”从线下柜台搬到指尖&#xff0c;价格、库存、参…

作者头像 李华
网站建设 2026/4/23 11:04:22

数据血缘分析的测试验证

1 数据血缘分析技术解析与测试关联性 1.1 数据血缘的核心概念 数据血缘&#xff08;Data Lineage&#xff09;是指对数据在整个系统生态中流动路径的完整追溯&#xff0c;包括数据从源端经过抽取、转换、加载&#xff08;ETL&#xff09;、加工计算、集成整合直至最终消费使用…

作者头像 李华
网站建设 2026/4/18 6:46:22

实力优选!北京 / 天津商场商业美陈活动策划设计制作公司清单

在京津双城协同发展的战略格局下&#xff0c;北京核心商圈与天津新兴商业区形成差异化互补&#xff0c;共同构建起多层次的都市消费生态。作为城市商业空间的重要组成&#xff0c;购物中心正通过空间场景重构与体验升级&#xff0c;探索消费升级背景下的转型路径。其中&#xf…

作者头像 李华
网站建设 2026/5/3 2:00:05

从零开始:Python bilibili-api库实战指南

从零开始&#xff1a;Python bilibili-api库实战指南 【免费下载链接】bilibili-api B站API收集整理及开发&#xff0c;不再维护 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api 你是否曾想过自动化获取B站数据&#xff1f;或者想要批量分析UP主的视频表现…

作者头像 李华
网站建设 2026/4/30 10:23:17

leetcode 743. Network Delay Time 网络延迟时间

Problem: 743. Network Delay Time 网络延迟时间 解题过程 堆优化迪杰特斯拉版本&#xff0c;Dijkstra方案&#xff0c;找到k到其他每个node的最短时间&#xff0c;然后求出所有node的最大时间&#xff0c;最大值(每个node的最小时间) 深度优先或者广度优先都可以做&#xff0c…

作者头像 李华