第十一届蓝桥杯A组省赛填空试题 D: 七段码(Java)

试题 D: 七段码
本题总分:10 分

【问题描述】
小蓝要用七段码数码管来表示一种特殊的文字。
在这里插入图片描述

上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二极管,分别标记为 a, b, c, d, e, f, g。
小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。

例如: b 发光,其他二极管不发光可以用来表达一种字符。
例如: c 发光,其他二极管不发光可以用来表达一种字符。这种 方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。
例如: a, b, c, d, e 发光, f, g 不发光可以用来表达一种字符。
例如: b, f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。
请问,小蓝可以用七段码数码管表达多少种不同的字符?

【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【思路】
深度优先搜索+状态压缩+HashSet唯一性

【Java代码】

package lanqiao2020;import java.util.ArrayList;
import java.util.HashSet;public class test {//使用HashSet可以唯一性存储符合条件的数码管亮灭情况状态static HashSet<Integer> set = new HashSet<>(); //使用邻接链表存储数码管连通情况static ArrayList<Integer>[] list = new ArrayList[7];public static void main(String[] args) {//初始化连通情况for(int i = 0; i < 7; i++) {list[i] = new ArrayList<Integer>();}list[0].add(1);list[0].add(5);list[1].add(0);list[1].add(6);list[1].add(2);list[2].add(1);list[2].add(3);list[2].add(6);list[3].add(2);list[3].add(4);list[4].add(3);list[4].add(5);list[4].add(6);list[5].add(0);list[5].add(4);list[5].add(6);list[6].add(1);list[6].add(2);list[6].add(4);list[6].add(5);//以每个数码管作为起点(即在该数码管必须亮情况下)for (int i = 0; i < 7; i++) {set.add(1<<i); //单独亮也符合情况,所以存储进去dfs(1, i, 1<<i); //深度优先搜索}System.out.println(set.size()); //因为唯一性,所以set中元素的个数即为符合条件的数码管亮灭状态的数量}//深度优先搜索,第一个参数代表当前亮了几个数码管,第二个参数代表当前最近亮起的数码管,第三个参数即为当前状态(如0000001代表0号数码管亮,其余不亮)static void dfs(int total, int cur, int state) {//最多亮起7个数码管if (total == 7) {return;}for (Integer item : list[cur]) {if (!set.contains(state | (1<<item))) {set.add(state | (1<<item));}dfs(total+1, item, state | (1<<item));}}
}

【结果】

80

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【弗雷泽岛发射站所需的最小发射功率计算】通信调制体制设计之64QAM性能分析MATLAB仿真及代码

关注公号【逆向通信猿】更精彩!!! 任务背景 弗雷泽岛旅游经理在审查您之前建立无线链路任务的解决方案时,正在研究使用无线链路传输实时安全视频源的可能性。由于来自岛周围的多个安全摄像机的视频信号在传输之前被多路复用,因此无线信道的数据速率是不同的。弗雷泽岛旅…

第十一届蓝桥杯A组省赛试题 F: 成绩分析(Java)

试题 F: 成绩分析 时间限制: 1.0s 内存限制: 512.0MB 本题总分&#xff1a;15 分 【问题描述】 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100 分&#xff0c;每个学生的得分都是 一个 0 到 100 的整数。 请计算这次考试的最高分、最低分和平均分。 【输入格式】 输…

基于代价函数小波脊相位的MFSK信号符号速率估计MATLAB仿真及代码(2020.12.14更新)

算法来源 王勇, 王李福, 邹辉,等. 一种小波脊相位提取方法: 中国专利. 仿真结果 引言 当前,脊点的选取较准确也较经典的方法是Liu等提出的里程碑式的基于代价函数的小波脊相位提取方法(即代价函数脊法),其利用代价函数来抑制噪声的影响,并结合动态规划的思想进行脊线的…

AI+社区智能管理,赋能智慧城市人情共「智」(人工智能应用案例)

社区是城市的关键组成部分&#xff0c;社区治理是围绕社区场景下的人、地、物、情、事的管理与服务。 随着城市化的快速推进及人口流动的快速增加&#xff0c;传统社区治理在人员出入管控、安防巡逻、车辆停放管理等典型场景下都面临着人力不足、效率低下、响应不及时等诸多难…

第十一届蓝桥杯A组省赛试题 G: 回文日期(Java)

试题 G: 回文日期 时间限制: 1.0s 内存限制: 512.0MB 本题总分&#xff1a;20 分 【问题描述】 2020年春节期间&#xff0c;有一个特殊的日期引起了大家的注意&#xff1a;2020年2月2日。因为如果将这个日期按 yyyymmdd 的格式写成一个8位数是 20200202 &#xff0c;恰好是一个…

多种参数的BCH、RS码和(2,1,6)卷积码编码的MATLAB仿真实现

欢迎同步关注公众号【逆向通信猿】 关于BCH码、RS码和卷积码的原理,可以查阅相关书籍资料,在此不多作赘述,有疑问可在下方留言。 MATLAB代码如下 clear;close all;clc; N=500; bit=randi([0 1],1,N);%% BCH码 %<

自同步扰乱编码器的原理与MATLAB仿真

欢迎同步关注公众号【逆向通信猿】 扰乱编码原理 在实际的数字通信中,由于语言统计特性和采用的信息编码方案等原因,信源输出序列普遍具有0、1不平衡性,即信息序列中比特 0 和比特 1 出现的概率并不是各占1/2且可能出现连续的“0”或连续的“1”,这不仅破坏了系统设计的前…

第十一届蓝桥杯A组省赛试题 H: 子串分值(Java)

试题 H: 子串分值 时间限制: 1.0s 内存限制: 512.0MB 本题总分&#xff1a;20 分 【问题描述】 对于一个字符串 S&#xff0c;我们定义 S 的分值 f(S) 为 S 中恰好出现一次的字符个数。例如 f(“aba”)1&#xff0c;f(“abc”)3, f(“aaa”)0。 现在给定一个字符串 S[0…n-1]…

java即时编译器_Java即时编译:不仅仅是一个流行词

java即时编译器最近的Java生产性能问题迫使我重新审视并真正欣赏Java VM即时&#xff08;JIT&#xff09;编译器。 大多数Java开发人员和支持人员都听说过这种JVM运行时性能优化&#xff0c;但是有多少人真正理解并欣赏它的好处&#xff1f; 本文将与您分享在添加新的虚拟服务…

[精品]CSAPP Bomb Lab 解题报告(一)

接上篇堆栈图解CSAPP Bomb Lab实验解析 gdb常用指令 设置Intel代码格式:set disassembly-flavor intel 查看反汇编代码:disas phase_1 查看字符串:(gdb) x/s 0x402800 0x402800: "Gunston"实验简介 浏览 bomb.c 文件可知,Bomb Lab 总共有 6 个关卡(Phase)…

MATLAB2021下载安装图文教程

微信公众号&#xff1a;创享日记 发送关键词&#xff1a;matlab 免费获取下面教程中的 Matlab_ R2021a(64bit) 安装包 前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点…

如何在飞书自建项目中接入ChatGPT打造智能问答助手并远程访问

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话&#xff0c;在下面操作步骤中…

Java中没有递归的二进制搜索–迭代算法

本周的任务是用Java实现二进制搜索 &#xff0c;您需要编写迭代和递归二进制搜索算法 。 在计算机科学中&#xff0c;二进制搜索或半间隔搜索是一种分而治之的算法&#xff0c;用于定位项目在排序数组中的位置。 二进制搜索通过将输入值与数组的中间元素进行比较来工作。 比较确…

“5G通达,AI赋能“ AI在网络规划中的应用实践(人工智能应用案例)

网络规划 与图像、语音这种&#xff0c;和日常生活息息相关的AI应用不同&#xff0c;在移动通信网络中的应用AI&#xff0c;其专业性较强。因此&#xff0c;首先简单介绍一下什么是网络规划&#xff1f; 简单来说&#xff0c;网络规划就是以合适的建网成本&#xff0c;确定站…

[精品]CSAPP Bomb Lab 解题报告(二)

接上篇[精品]CSAPP Bomb Lab 解题报告(一) gdb常用指令 设置Intel代码格式:set disassembly-flavor intel 查看反汇编代码:disas phase_1 查看字符串:(gdb) x/s 0x402800 0x402800: "Gunston"2. Phase 2: loops 2.1 本关密码 1 2 4 8 16 322.2 解题过程 %…

第十三届蓝桥杯A组省赛填空程序真题集

文章目录试题 A: 裁纸刀(填空)试题 B: 寻找整数&#xff08;填空&#xff09;试题 C: 求和试题 D: GCD试题 E: 蜂巢试题 F: 全排列的价值试题 G: 青蛙过河试题 H: 因数平方和试题 I: 最优清零方案试题 J: 推导部分和试题 A: 裁纸刀(填空) 本题总分&#xff1a;5 分 【问题描述…

[精品]CSAPP Bomb Lab 解题报告(三)

接上篇[精品]CSAPP Bomb Lab 解题报告(二) gdb常用指令 设置Intel代码格式:set disassembly-flavor intel 查看反汇编代码:disas phase_1 查看字符串:(gdb) x/s 0x402800 0x402800: "Gunston"3. Phase 3: conditionals / switches 3.1 本关密码 0 207, 1 3…

spring框架mvc框架_Spring MVC测试框架入门–第2部分

spring框架mvc框架这个迷你系列的第一个博客介绍了Spring MVC测试框架&#xff0c;并演示了其在单元测试Spring MVC Controller类中作为控制器而不是POJO进行单元测试的用途。 现在是时候讨论使用框架进行集成测试了。 “集成测试”是指将Spring上下文加载到测试环境中&#x…

拉格朗日乘子法

拉格朗日乘子法 (Lagrange multipliers)是⼀种寻找多元函数在⼀组约束下的极值的⽅法。 通过引⼊拉格朗⽇乘⼦&#xff0c;可将有 d 个变量与 k 个约束条件的最优化问题转化为具有 d k 个变量的⽆约束优化问题求解。 本⽂希望通过⼀个直观简单的例⼦尽⼒解释拉格朗⽇乘⼦法和…

[精品]CSAPP Bomb Lab 解题报告(四)

接上篇[精品]CSAPP Bomb Lab 解题报告(三) gdb常用指令 设置Intel代码格式:set disassembly-flavor intel 查看反汇编代码:disas phase_1 查看字符串:(gdb) x/s 0x402800 0x402800: "Gunston"4. Phase 4: recursive calls and the stack discipline 4.1 本关…