蓝桥杯之滑动解锁

【蓝桥杯——单片机学习笔记】十三.点阵(STC15F2K60S2) 一.点阵内部图 点阵的有两种,分为共阴和共阳(与数码管类似,后续代码根据共阳点阵编写)。点阵的控制主要是每行和每列电平的控制。如图,以共阳为例:若要使左上角的灯亮,则第一行输出高电平(其他行均为低电平),第一列输出低电平(其他列均为高电平)。 二.原理图 与数码管共用接口,所以数码管和点阵的显示只能选一个使用! 原理图中点阵的接口R5即代表第5行(Row),C8即代表第8列(Column)。通... 阅读详情

题目:滑动解锁

    滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。
    这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。

    所谓两个点“相邻”:当且仅当以这两个点为端点的线段上不存在尚未经过的点。

    此外,许多手机都约定:这条折线还需要至少经过4个点。

    为了描述方便,我们给这9个点从上到下、从左到右依次编号1-9。即如下排列:

    1 2 3
    4 5 6
    7 8 9

    那么1->2->3是非法的,因为长度不足。
    1->3->2->4也是非法的,因为1->3穿过了尚未经过的点2。
    2->4->1->3->6是合法的,因为1->3时点2已经被划过了。

    某大神已经算出:一共有389112种不同的解锁方案。没有任何线索时,要想暴力解锁确实很难。
    不过小Hi很好奇,他希望知道,当已经瞥视到一部分折线的情况下,有多少种不同的方案。
    遗憾的是,小Hi看到的部分折线既不一定是连续的,也不知道方向。

    例如看到1-2-3和4-5-6,
    那么1->2->3->4->5->6,1->2->3->6->5->4, 3->2->1->6->5->4->8->9等都是可能的方案。


    你的任务是编写程序,根据已经瞥到的零碎线段,求可能解锁方案的数目。

    输入:
    每个测试数据第一行是一个整数N(0 <= N <= 8),代表小Hi看到的折线段数目。
    以下N行每行包含两个整数 X 和 Y (1 <= X, Y <= 9),代表小Hi看到点X和点Y是直接相连的。

    输出:
    对于每组数据输出合法的解锁方案数目。


    例如:
    输入:
    8
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
    7 8
    8 9

    程序应该输出:
    2

    再例如:
    输入:
    4
    2 4
    2 5
    8 5
    8 6

    程序应该输出:
    258


    资源约定:
    峰值内存消耗(含虚拟机) < 256M
    CPU消耗  < 1000ms


    请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

    所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
    java选手注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
    java选手注意:主类的名字必须是:Main,否则按无效代码处理。
import java.util.Scanner;

public class Main_06 {
    private static int N;   //表示看到的边数
    private static int[][] path;    //连接的点数
    private static boolean[] keep = new boolean[10];
    private static int count;   //表示能有多少个可能的结果

    private static boolean isBool(int a, int b){
        //8种情况
        int dig[][] = new int[][]{
            {1, 3, 2}, {4, 6, 5}, {7, 9, 8}, {1, 7, 4},
            {2, 8, 5}, {3, 9, 6}, {1, 9, 5}, {3, 7, 5}
        };
        for(int i = 0; i < 8; i++){
            if(a == dig[i][0] && b == dig[i][1] || a == dig[i][1] && b == dig[i][0])
                if(!keep[dig[i][2]]) return false;
        }   
        return true;
    }

    /*
     * @N 必须连接的个数
     * @step 当前连接的点数
     * @a 记录连接的序号
     */
    private static void dfs(int number, int step, int[] process){
        if(step >= 2){
            int a = process[step - 2];
            int b = process[step - 1];
            //如果为false的话, 那么直接就跳出这次遍历情况
            if(!isBool(a, b)) return;
        }
        if(step == number){
            for(int i = 0; i < N; i++){
                int a = path[i][0];
                int b = path[i][1];
                for(int j = 0; j < step - 1; j++){
                    if(a == process[j] && b == process[j + 1] || a == process[j + 1] && b == process[j])
                        break;
                    if(j == step - 2) 
                        return;
                }
            }
            count++;
            return;
        }else if(step > number) return;

        for(int i = 1; i <= 9; i++){
            if(!keep[i]){
                keep[i] = true;
                process[step] = i;  //当前位置的值
                dfs(number, step + 1, process);
                keep[i] = false;    //回溯
            }
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        path = new int[N + 1][2];
        int[] process = new int[10];

        for(int i = 0; i < N; i++){
            path[i][0] = sc.nextInt();
            path[i][1] = sc.nextInt();
        }
        //如果N的数字大于4,那么就是必须连接到N个数, 否则按连接到4为基准
        for(int i = N > 4 ? N : 4; i <= 9; i++)
            dfs(i, 0, process);

        System.out.println(count);
        sc.close();
    }
}
Java登录时滑动图片解锁 该文件是使用javaweb相关的知识编写的关于用户登录界面实现滑动图片解锁实现安全登录的功能项目 立即下载

相关推荐

滚动条拖拽滑动解锁 (五个Demo)

适用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。

hihoCoder 1054 : 滑动解锁

典型的深搜,用option来

taoqick的专栏 1684

滑动解锁Demo

1:实现手机功能常用的滑动解锁功能 2:添加解锁震动功能 3:进行屏幕锁屏的监听,当锁屏时,应用进行锁屏..

java如何自动解滑块_java实现滑动验证解锁

本文实例为大家分享了java实现滑动验证解锁的具体代码,供大家参考,具体内容如下1.html:请拖动滑块解锁>>/* 滑动验证码 */var successRand = '';//一、定义一个获取DOM元素的方法varbox = document.querySelector(".drag"),//容器bg = document.querySelector(".bg"),//...

weixin_36382534的博客 1314

滑动解锁

滑动解锁源码是一个屏幕滑动解锁的例子源码,开发锁屏的时候主要需要注意两点:1、启动服务来注册一个广播,这个广播用来监听屏幕关闭与开启(黑屏与正常显示)。2、绘制滑动图片的时候,需要以触摸点的位置为基础。不然会出现,触摸点与滑动图片的距离变得非常大。

java实现滑动验证解锁

主要为大家详细介绍了java实现滑动验证解锁,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Java 图片 滑动 解锁

滑动解锁功能大家都不陌生,类似于如下这种: 公司近期也要求实现类似的功能,百度各种文章,总算实现了一个比较糙的版本,保密等原因就不贴完成图了。 我觉得难点在于滑块图和背景图的处理。 图片处理原理 我粗略的理解,图片就是一个二维的直角坐标系的一部分,(x,y)就是对应位置的一个像素点,可以操作某一个像素点,比如改变颜色,设置透明度等。 Java中使用BufferedImage完成图...

luchao1989的博客 1372

matlab内读取文件目录时斜杠和反斜杠的使用

@matlab内读取文件目录时斜杠和反斜杠的使用TOC matlab内读取文件目录时,斜杠和反斜杠的使用 最近被斜杠和反斜杠弄晕了,于是总结了一下,在此和大家分享一下。 代码 clear; clc; close all; I1= imread('..\zs1.jpg'); %和代码文件夹同目录的图片 (纯反斜杠) I2= imread('../zs2/zs2.j...

weixin_44456694的博客 6571

蓝桥杯—滑动解锁

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

qq_40339331的博客 355

运算放大器电路仿真实践:从零实现完整示例

通过一个完整的运算放大器电路仿真示例,深入掌握电路仿真的关键步骤与技巧,帮助电子爱好者和工程师快速上手实际项目设计。

weixin_34725745的博客 1317

EG2134驱动芯片实战:如何用TSSOP20封装搞定三相无刷电机驱动(附电路图)

本文详细介绍了EG2134驱动芯片在三相无刷电机驱动中的应用实践,包括芯片选型、电路设计和PCB布局技巧。EG2134作为一款高性能半桥驱动芯片,采用TSSOP20封装,适合紧凑型设计。文章还提供了典型应用电路图和调试指南,帮助工程师快速实现稳定可靠的电机驱动方案。

d3e4f的博客 306

第八届蓝桥杯模拟赛 滑动解锁

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

ryo_218的博客 888

【Autosar从入门到精通到进阶实战篇】75 0x34/0x36/0x37:请求下载、传输数据、请求退出——刷写流程的“三兄弟”

文章摘要:UDS刷写流程0x34/0x36/0x37关键实现要点 本文通过一个真实ECU变砖案例,揭示了UDS刷写服务(0x34请求下载、0x36传输数据、0x37请求退出)的实现陷阱与最佳实践。核心要点: 安全架构设计: 0x34阶段只协商参数,不立即擦除Flash 采用缓冲区暂存数据,避免频繁写Flash 严格检查地址对齐和内存边界 关键改进措施: 实现数据包序列号校验(防错位) 传输层缓冲区溢出保护 0x37阶段必须包含完整性校验(如CRC32) 一次性批量写入Flash,减少擦写次数 典型错误模式:

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 68

蓝桥杯 滑动解锁 java

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

qq_34902590的博客 608

什么是 AIDV(AI 定义汽车):从软件定义到智能决策的范式革命

AI定义汽车(AIDV),是指以人工智能(尤其是大模型、深度学习、强化学习)为核心引擎,以车载AI芯片为算力底座,以“数据闭环”为迭代支撑,重构汽车感知、决策、执行全链路,实现“感知智能化、决策自主化、体验个性化、迭代自动化”的新一代智能汽车发展范式。其核心是让汽车从“执行工具”升级为“具备自主学习与智能决策能力的移动智能终端”,核心价值是“车与人的深度协同”与“复杂场景的自主适配”。

getusushu的博客 96

MIPI RFFE 信号完整性与硬件设计

MIPI RFFE信号完整性设计关键点 摘要:MIPI RFFE作为射频前端控制总线,其信号完整性设计需平衡速率、驱动能力与抗干扰性。核心挑战在于确保接收端在52Mb/s速率下保持足够的电压和时序裕量。关键设计考量包括: 驱动能力优化:过强导致过冲/振铃和射频杂散,过弱则恶化时序裕量,需与总线负载匹配。 波形质量指标:严格控制上升/下降时间(兼顾EMC和时序要求),抑制过冲/振铃幅度,管理VIO电源纹波和耦合噪声。

sinat_15150363的博客 237

蓝桥杯2017模拟赛-滑动解锁

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

a568283992的博客 3852

【SECS】初识SECS协议

项目标题的第一位和第二位告诉下面有多少字节表示项目的长度。而项目的长度是指项目标题后面的字节数,这里第一个字节就是项目标题。1个字节可以表示的最大长度是0-255,所以只要项目标题后面的字节数小于等于254,都是0x01。

weixin_48618536的博客 1641

2017蓝桥杯模拟赛(滑动解锁)

题目:滑动解锁     滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。 所谓两个点“相邻”:当且仅当以这两个点为端点的线段上不存在尚未经过的点。 此外,许多手机都约定:这条折线还需要至少经过4个点。 为了描述方便,我们给这9

负负 404

数据服务:数据服务框架Magic-API 介绍及实践

接口快速开发框架 基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 。在线页面快速开发平台 基于 vue 的在线页面快速开发平台,主要把所有的 vue 代码都改为在线配置,最终获得一个 json 格式的页面新一代爬虫平台 基于Java实现的新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。今天给大家安利一

GIS摆渡人 2063

Devexpress16.2.6破解工具

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

题目:滑动解锁 蓝桥杯

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

海绵的博客 512

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝桥杯模拟赛--滑动解锁

题目:滑动解锁 滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。 所谓两个点“相邻”:当且仅当以这两个点为端点的线段上不存在尚未经过的点。 此外,许多手机都约定:这条折线还需要至少经过4个点。 为了描述方便,我们给这9个点从上

obession的博客 667

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

蓝桥杯模拟赛:滑动解锁

参考了这位大牛:http://blog.youkuaiyun.com/qq_36238595/article/details/63254554 题目:滑动解锁 滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的”相邻”的点。这些划过的点所组...

weixin_33704234的博客 75

第八届蓝桥杯2017模拟赛 滑动解锁

题目:滑动解锁 滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。 所谓两个点“相邻”:当且仅当以这两个点为端点的线段上不存在尚未经过的点。 此外,许多手机都约定:这条折线还需要至少经过4个点。 为了描述方便,我

Vsam_的博客 743

2017蓝桥杯模拟赛 Problem F: 滑动解锁(21分)

Problem F: 滑动解锁(21分) Description 滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。 所谓两个点“相邻”:当且仅当以这两个点为端点的线段上不存在尚未经过的点。 此外,许多手机都约定:这

nhpper的博客 677
上一篇: 蓝桥杯之风险度量
下一篇: Autowired注解的使用
LuFei_java
博客等级 码龄10年 1粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值