手机的九宫格图形解锁算法(判断是否合法)

威纶通触摸屏JS元件开发九宫格解锁功能实战 本文详细介绍了如何在威纶通触摸屏上使用JS元件开发九宫格解锁功能,提升工业控制与智能家居设备的安全性。通过实战案例和代码示例,展示了从UI绘制、触摸轨迹处理到与PLC数据交互的全流程实现,并提供了性能优化和安全增强的实用技巧。 阅读详情


从HDU 5641有感。

链接如下HDU 5641

题意:给你一段密码序列,让你判断合不合法.比如 3->4->2->7 这个就是合法的,但是 3->7->2->4就是不合法的.
代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#define MS(x,y) memset(x,y,sizeof(x))
using namespace std;
int num[10],k;
bool chose[10][10];
bool chos[10];
//打表判断9个点初始不能到达的点
void init()
{
    MS(chose,true);
    MS(chos,false);
    chose[1][3]=false;
    chose[1][7]=false;
    chose[1][9]=false;
    chose[2][8]=false;
    chose[3][1]=false;
    chose[3][9]=false;
    chose[3][7]=false;
    chose[4][6]=false;
    chose[6][4]=false;
    chose[7][1]=false;
    chose[7][3]=false;
    chose[7][9]=false;
    chose[8][2]=false;
    chose[9][1]=false;
    chose[9][3]=false;
    chose[9][7]=false;
}

bool judge()
{
    int i,j;
    //判断有没有相同点
    for(i=0;i<k-1;++i){
        for(j=i+1;j<k;++j)
        {
            if(num[j]==num[i])
                return false;
        }
    }
   for(i=0;i<k-1;++i)
    {
        chos[num[i]]=true;
        if(!chose[num[i]][num[i+1]])
        {
            if(!chos[(num[i]+num[i+1])/2])  ////中间点没有经过
             return false;
        }
            ///路径上的中间点不能跳过,除非已经被经过
        for(j=1;j<=9;++j)
        {
           // if(j==num[i]) continue;
            if(!chose[num[i]][j])
            {
                if(chose[num[i+1]][j])
                {
                    chose[num[i]][j]=true;
                    chose[j][num[i]]=true;
                }
            }
        }
/*
123
456
789
4 6->2->1->3
4 3->8->2->5
*/
    }
return true;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        init();
        bool flag=false;
        memset(num,0,sizeof(num));
        scanf("%d",&k);
        for(int i=0;i<k;++i)
        {
             scanf("%d",&num[i]);
             if(num[i]<1||num[i]>9)
                flag=true;
        }
        if(k<4||flag)
        {
            printf("invalid\n");
            continue;
        }
        if(judge())
            printf("valid\n");
        else
            printf("invalid\n");

    }
    return 0;
}


Arduino Leonardo模拟安卓图形锁解锁:USB HID触控自动化实践 USB HID(人机接口设备)协议是计算机与输入设备通信的基础标准,它定义了键盘、鼠标等设备与主机交互的规范。其原理在于设备通过USB接口向系统报告自身的输入状态,操作系统则将其识别为标准输入源进行处理。这项技术的核心价值在于实现了硬件与软件间的标准化交互,极大拓展了自动化控制的可能性。在物联网和嵌入式开发领域,利用USB HID协议可以让微控制器(如Arduino)模拟成为鼠标、键盘等输入设备,从而实现对计算机或移动设备的自动化控制。典型的应用场景包括自动化测试、辅助交互设备开发以及智能硬件联动等。本文聚 阅读详情

相关推荐

九宫格密码解锁、设置密码

一款自己写的九宫格密码解锁和设置锁的功能(高仿vivo手机九宫格解锁)可以自定义九宫格每个格子的颜色、大小以及用途 自定义属性请看value/attr.xml中的注释,写的很清楚,里面也有Demo,如何使用,还有生成的demo apk 包,你可以先看看是否是你需要的需求

九宫格拼图,避免不可还原

对于九宫格拼图,如果随机打乱的话,有50%的概率出现不可还原的情况。 可以采用求逆序数的方法避免不可还原的情况。 逆序数:即在一个数列中,按照从小到大的顺序排列则是顺序,如果有两个数违反了这一规则,即左边的数大于右边的数,那么这两个数就是一个逆序。 例: 0, 3, 1, 2 这个数列中,(0,3),(0,1),(0,2)都是顺序,(3,1)是一个逆序,(3,2)是一个逆序,(1,2)是顺序,只有...

weixin_42438777的博客 1万+

Linux下多线程判断九宫格是否有效

简单的多线程编程,为了判断数独结果是否有效,把整个任务分解成几个可并行执行的子任务,然后把这些任务分配给多个线程。在这里,我们创建了11个线程,1~9个线程分别判断九个宫内的数字是否不重复,第10个线程判断每一行的数字是否不重复,第11个线程判断每一列的数字是否不重复。

Android案例算法——拼图是否有解算法

九宫格拼图随机打乱顺序之后,据说有50%的几率是不能成功拼回去的,所以在做拼图这个Android游戏的时候难免就要考虑是否有解了 下面是一种解决该问题的算法。 如图是一种情况,我们要把5和X交换,X代表的是空白块 那我们要怎么样才能知道这种情况是否有解呢? 1,2,3,4,X,6,7,8,5  依次排列成序列A 依次求第i位数(不包括X)对应的倒置变量值Ti,即位于第i位之后,比

Get_Better的博客 1626

【Unity】制作简易三维场景

本文介绍如何制作一个三维场景

CiNian_的博客 5331

从轻量化到高精度:3DXML 转 STP 的工程数据升级技术指南

本文详细解析了3DXML转STP格式的工程数据升级技术,对比了两种格式在轻量化和高精度方面的特性差异,并提供了CATIA、FreeCAD及Python编程等多种专业级转换方案。通过实际案例展示了如何确保转换过程中的数据精度,适用于CAD设计、精密制造等场景,帮助工程师实现工程数据的高效升级。

weixin_29201859的博客 215

九宫格拼图c语言程序,求问九宫拼图怎么判断有无解

已结贴√问题点数:20回复次数:2 求问九宫拼图怎么判断有无解#include#include#include#define N 3void show(int *p)//显示九宫格{int i,j;printf("\t\\\\\\|///\n");printf("\t\\\\ .-.- //\n");printf("\t( .@.@ ) \n...

weixin_33941707的博客 724

【可信数据空间-连接器技术架构设计方案】

一句话概括连接器是可信数据空间的“数据保镖”和“外交官”。连接器就是一个部署在你本地的软件代理,它代表你安全地对外提供数据服务,确保在共享数据价值的同时,牢牢守住数据的所有权和控制权。它是实现“数据可用不可见”这一理想的关键技术部件。一个生动的比喻:银行的金库和接待员想象一下,你的数据就是藏在银行金库里的黄金和钞票。金库(你的内部数据库): 绝对安全,外人绝对不能进。接待员(连接器): 坐在银行大厅里,负责与客户打交道。客户向接待员提出请求:“我想取1000元。

u014716614的博客 2264

手机9宫格图案解锁方法总数计算

图案解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。两个点相邻当且仅当以这两个点为端点的线段上不存在尚未经过的点。此外,这条折线还需要至少经过4个点。 有些人可能有和我一样的疑问,在这小小的9个点中,图案密码总共有多少种形式呢?今天我就使用深度优先搜索

gaoxiang的专栏 6984

用AI+Playwright实现零代码UI自动化测试:以登录页面为例的实战指南

本文详细介绍了如何利用AI与Playwright结合实现零代码UI自动化测试,特别以登录页面为例进行实战演示。通过自然语言描述生成测试脚本,大幅降低技术门槛,提升测试效率,并支持跨浏览器验证。适合非技术人员快速上手专业级自动化测试。

weixin_28842269的博客 401

Python实战:超分辨率图像质量评估全攻略——PSNR、SSIM、LPIPS与NIQE的代码实现与优化

本文详细介绍了在Python中实现超分辨率图像质量评估的完整方案,涵盖PSNR、SSIM、LPIPS和NIQE四大核心指标。通过模块化代码设计、多进程并行处理和GPU加速优化,帮助开发者构建高效、可扩展的评估系统,并提供了实战避坑指南与结果解读方法。

weixin_29053073的博客 472

hdu 5641 水

题目链接 实力RE好多次 题目大意:给出一列数字在安卓手机上图案解锁,判断是否有效,经过的点不能再次经过,中间夹着点的也不能直接通过,并且一列数要大于等于4个。 以为输入数组开小了,RE好多次,结果输入的数不仅有1-9,要判断一下。 #include #include #include #include #include #include #include #inc

qq_33817680的博客 242

【从零到一】Jetson Nano上YOLOv5部署完全攻略:零基础小白也能玩转边缘AI推理

文章摘要: 本文详细介绍了在Jetson Nano边缘设备上部署YOLOv5目标检测模型的完整流程。从硬件准备、系统镜像烧录、基础环境配置,到CUDA/cuDNN验证、Python虚拟环境搭建及PyTorch安装,逐步指导开发者完成部署准备。教程兼顾理论原理与实践操作,提供Python和C++两种实现方案,并涵盖TensorRT优化、实时检测等生产级应用场景,帮助零基础开发者快速掌握边缘AI推理技术,实现高性能目标检测应用。

LXY_LOVE36的博客 367

手机九宫格滑锁密码的所有密码组合计算

题目好像是哪个公司的笔试题,同学给我的,然后自己就试着写写,才学浅陋,花了蛮多时间写的 题目大致意思如下:                   手机九宫格解锁图案如上,假设把一次先行后列标记九个圆一次为1,2,3,4,5,6,7,8,9这九个数字,求所有合法的密码情况 合法的密码我们假设要求如下: 1、假设密码的长度至少为2,最长当然为9 2、密码中不能有重复的数字出现,比如不能同

执子之手 2万+

OpenHarmony AI系列:神经网络处理单元(NPU)驱动架构与实现详解

NPU(Neural Processing Unit,神经网络处理单元)是专门为神经网络计算设计的硬件加速器。在OpenHarmony系统中,NPU驱动是通过NNRT(Neural Network Runtime,神经网络运行时)框架实现的,它作为中间桥梁连接上层AI推理框架和底层NPU硬件,实现AI模型的跨芯片推理计算。

m0_67505153的博客 665

芯擎SEC1000芯片参数详细介绍

随着龙鹰一号的不断进化和应用,未来的智能座舱将不仅仅是显示和控制的集成,更是人与车之间的一种默契和无缝交互的体现。在汽车行业迈向智能化和电动化的浪潮中,座舱已不仅仅是一个驾驶者的操作空间,而是逐渐演变为一个集娱乐、信息、控制于一体的智能交互平台。今天的汽车不仅需要强劲的动力和炫酷的外观,更需要一颗强大而智能的“心脏”来支撑复杂的座舱体验和安全驾驶需求。想象一下,未来的汽车不再仅仅是交通工具,它将成为你的移动私人管家,了解你的习惯,甚至提前预测你的需求。让我们一起走进龙鹰一号的世界,探索智能座舱的无限可能!

weixin_43199439的博客 1722

算法85----手机九宫格

一、题目 手机的九宫格图案解锁总共能绘出多少种图案? 需要满足的要求有:至少经过四个点;不能重复经过同一个点;路径上的中间点不能跳过(如从1到3一定会经过2);如果中间的点是之前已经用过的,那么这个点就可以被跳过(如213,因为2已经被用过,1就可以越过2与3连接,132是不允许的)。 二、思路:   1、至少经过四个点;不能重复经过同一个点;【对数字进行4个数...

weixin_33742618的博客 446

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

WPF自定义控件之图形解锁控件 ScreenUnLock

WPF自定义控件之图形解锁控件 ScreenUnLock 原文:WPF自定义控件之图形解锁控件 ScreenUnLockScreenUnLock 与智能手机上的图案解锁功能一样。通过绘制图形达到解锁或记忆图形的目的。 本人突发奇想,把手机上的图形解锁功能移植到WPF中。也应用到了公司的项目中。 在创建ScreenUnLock之前,先来分析一...

weixin_30457551的博客 172

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

手机的九宫格图案解锁总共能绘出多少种图案?(hiho模拟面试题2 - google在线技术笔试模拟)

滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。两个点相邻当且仅当以这两个点为端点的线段上不存在尚未经过的点。此外,这条折线还需要至少经过4个点。 为了描述方便,我们给这9个点从上到下、从左到右依次编号1-9。那么1->2->3是不合法的,因为

苏苏爱自由 8712

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

iOS开发之手势解锁

本文主要介绍通过手势识别实现手势解锁功能,这个方法被广泛用于手机解锁,密码验证,快捷支付等功能实现。事例效果如下所示。 首先,我们先分析功能的实现过程,首先我们需要先看大致的实现过程: 1.加载九宫格页面 2.实现按钮被点击及滑动过程中按钮状态的改变 3.实现滑动过程中的连线 4.绘制完毕后判定密码是否正确, 5.密码判定后实现跳转。 下面我们就来用代码实现上述五个过程。 ...

weixin_30950607的博客 235

如何破解安卓手机上的图形锁(九宫格锁)

http://mobile.51cto.com/iphone-441496.htm 安卓手机的图形锁(九宫格)是3×3的点阵,按次序连接数个点从而达到锁定/解锁的功能。最少需要连接4个点,最多能连接9个点。网上也有暴力删除手机图形锁的方法,即直接干掉图形锁功能。但假如你想进入别人的手机,但又不想引起其警觉的话……你可以参考一下本文。 前提条件:手机需要root,而且打开调试模式。一...

weixin_30883311的博客 583

手势解锁demo实现的基本思路

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33985507的博客 180

P4460 [CQOI2018]解锁屏幕

算是我比较擅长的类型,自己想想就会了。普通小状压,状态傻子都能想出来。一开始裸的枚举T了,30.后来与处理之后跑的飞起,就是不对,还是30分。后来看讨论版。。。mod竟然是1e8+7!!!这不有毒吗。。。 题干: 题目背景 使用过Android 手机的同学一定对手势解锁屏幕不陌生。Android 的解锁屏幕由3X3 个点组成,手指在屏幕上画一条线,将其中一些点连接起来,即可构成一个解...

weixin_30924239的博客 129

[BZOJ5299][Cqoi2018]解锁屏幕(状压dp)

Description 使用过 Android 手机的同学一定对手势解锁屏幕不陌生。 Android 的解锁屏幕由 3×33×33\times3个点组成,手指在屏幕上画一条 线将其中一些点连接起来,即可构成一个解锁图案。如下面三个例子所示: 画线时还需要遵循一些规则 1.连接的点数不能少于 444 个。也就是说只连接两个点或者三个点会提示错误。 2.两个点之间的连线不能弯曲。 3....

女装的你,如此好看! 466

手机的九宫格图案解锁总共能绘出多少种图案?LeetCode 351. Android Unlock Patterns

需要满足的要求有: 至少经过四个点; 不能重复经过同一个点; 路径上的中间点不能跳过(如从1到3一定会经过2); 如果中间的点是之前已经用过的,那么这个点就可以被跳过(如213,因为2已经被用过,1就可以越过2与3连接,132是不允许的)。 作者:linkwun 链接:https://www.zhihu.com/question/24905007/answer/29414497 来源:知乎 著作...

taoqick的专栏 8324
上一篇: 微信红包的算法实现
下一篇: 替换空格
MagicScaring
博客等级 码龄11年 18粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值