安卓图案解锁NC13585
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
栗主席(lizi)是某xxxx大学的一个不得了的程序猿,然而没想到吧,他竟然有女盆友,我们假设为QAQ!!!
那天,QAQ问栗子:你的小米5s的图像解锁密码到底是多少?
栗子:嘛?我仔细想想…
QAQ:你仿佛在逗我…
…
栗子:我的图像解锁用过好多次密码,后来都是用指纹解锁,所以忘记密码辣。但是我记得可能是那几个密码
QAQ:那你务必告诉我…
栗子: …
然后,栗子就写下了一堆可能的密码,安卓图案解锁中,数字对应的位置已经标出。
但是栗子当然不想把真正的密码告诉QAQ,所以给QAQ的一系列的密码中,甚至有一些密码,是不符合安卓图案解锁的规则的。
QAQ也知道栗子肯定不老实,给了很多错的密码,甚至不符合规则的密码,所以想请你来找出,哪些密码是不符合规则的。
安卓图案解锁的密码有这样的一些特点:
1.每个数字最多只会被使用一次。
2.如果想直接连接两个数字,但是线段中会经过另一个数字,当且仅有那个数字已经在之前就被使用过了,才会合法。(比如你想从1直接连接到9,那么要么是1->3->9,要么是3在之前已经被使用过了,然后才能直接从1->9)
输入描述:
多组输入
每组输入占一行,包含一串数字(1~9),长度不超过30
输出描述:
输出这个安卓图案解锁是否合法,如果合法输出"YES",反之输出"NO" (请参照样例输出,不要输出引号)
示例1
输入
14569
1953
15963
15953
输出
YES
NO
YES
NO
分析:利用枚举法判断两次数字之间的操作是否合理即可
#include<stdio.h>
#include<string.h>
int num[10];//存按钮状态
char str[10005];//存操作字符
int t[10005];
int step(int x,int y)//判断操作是否合理,不合理返回1
{if(x==1&&y==3&&num[2]==0)return 1;else if(x==1&&y==9&&num[5]==0)return 1;else if(x==1&&y==7&&num[4]==0)return 1;else if(x==3&&y==7&&num[5]==0)return 1;else if(x==3&&y==9&&num[6]==0)return 1;else if(x==7&&y==9&&num[8]==0)return 1;else if(x==4&&y==6&&num[5]==0)return 1;else if(x==2&&y==8&&num[5]==0)return 1;else return 0;}
int main()
{int i;while(~scanf("%s",str)){int flag=0;for(i=1;i<10;i++)num[i]=0;//定义按钮初始状态int len=strlen(str);for(i=0;i<len;i++){t[i]=str[i]-'0';str[i]=0;}for(i=0;i<len;i++)//进行len次操作{if(i==0)//第一个点{num[t[i]]=1;continue;}if(num[t[i]]==1)//判断这个点有没有操作过{flag=1;break;}if( step(t[i],t[i-1]) ||step(t[i-1],t[i])){flag=1;break;}num[t[i]]=1;}if(flag==1)printf("NO\n");elseprintf("YES\n");}return 0;}
安卓图案解锁NC13585相关推荐
- 刷题记录:牛客NC13585安卓图案解锁
传送门:牛客 栗主席(lizi)是某xxxx大学的一个不得了的程序猿,然而没想到吧,他竟然有女盆友,我们假设为QAQ!!! 那天,QAQ问栗子:你的小米5s的图像解锁密码到底是多少? 栗子:嘛?我仔细 ...
- 长沙理工大学第十二届ACM大赛-重现赛C 安卓图案解锁 (模拟)
链接:https://ac.nowcoder.com/acm/contest/1/C 来源:牛客网 安卓图案解锁 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...
- 牛客每日练习----合并回文串,年轮广场,安卓图案解锁
大提琴的声音就像一条河,左岸是我无法忘却的回忆,右岸是我值得紧握的璀璨年华,中间流淌的,是我年年岁岁淡淡的感伤. 链接:https://ac.nowcoder.com/acm/problem/1323 ...
- 编程题:安卓图案解锁
题目连接:牛客网 题目的意思是这样的:给定一个安卓开锁的序列,确定给出的序列是否是合法的解锁序列. 解锁的规则限制: 1.每个数字最多只会被使用一次. 2.如果想直接连接两个数字,但是线段中会经过另一 ...
- 【枚举】安卓图案解锁题解
链接:https://ac.nowcoder.com/acm/problem/13585 来源:牛客网 解题思路: 1.利用集合来检测是否有重复的按键 2.在遇到1,3,7,9,2,4,6,8都检测一 ...
- [源码]Android安卓应用手势锁图案解锁的实现
交互细节 用户首先使用账号/密码进行登录. 登录成功后,判断是否是第一次登录使用,如果是第一次则显示创建手势密码的界面,要求用户创建手势锁. 创建的过程中要求用户连接至少四个点,并且绘制两次以确认绘制 ...
- 安卓中图案解锁的实现原理和实现过程
由上图,可以看出,图案中手势的记录是1-9或0-8的,保存的顺序就是密码,当然有些是可以重复的,为了安全,肯定不能直接存原顺序,一定是要加密处理的,如MD5或Hash散列. (作者: a day a ...
- [亲测有效] 如何实现vivo图案解锁
vivo是最受欢迎的智能手机品牌之一,拥有庞大的客户群.但是在使用vivo手机的过程中,难免会出现意外.其中最常见的是忘记密码.那么,如果您忘记了密码,如何解锁 vivo 手机呢?这是您需要知道的一切 ...
- 破解安卓图案锁屏密码
破解安卓图案锁屏密码 安卓的图案解锁由九个点构成,按顺序为0x00-0x08(十六进制)排列如下: 00 01 02 03 04 05 06 ...
最新文章
- 一次 Jar 包升级引发的血案 amp; 解决
- Java开发学习--MongoDB
- verilog中b',d',h'的意思
- python将字符串写入csv_用Python将字符串值写入CSV文件
- 计算机硬件结构控制信息,计算机硬件的基本结构
- 湖南工业大学在线计算机作业答案,湖南工业大学《计算机组成原理》试题集,共7份,有部分答案...
- ★LeetCode(196)——删除重复的电子邮箱(MySQL)
- 真正的创业者和伪创业者的区别在哪里?
- linux 嵌入式 快照_定制嵌入式 Linux 发行版
- window10 下面固定本地 ip
- 网络神采关键词过滤NET插件
- 木瓜移动跨境行业一周咨讯:字节跳动旗下Fanno欧洲上线、亚马逊中国黑五战绩优秀
- 学习笔记----网站的优化(五)---CDN加速
- 初学狄克斯特拉算法~(待提高)
- 鲜枣课堂-文章分类目录(2019.7.28更新)
- dhrystone测试结果_测试cpu的简单工具-dhrystone | 学步园
- 50天50个前端小项目(纯html+css+js)第十二天(FAQ 问题与回答框)
- 彻底解决Vsart无法拖拽问题!!!Win10无法拖拽问题
- tableau高级绘图(四)-tableau绘制蜡烛图
- 解决BUG:Incorrect string value: ‘\xAC\xED\x00\x05~r...‘ for column ‘XX‘ at row 1 Query