第十一届蓝桥杯 ——七段码

2023-11-17

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

上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二极管,分别标记为 a, b, c, d, e, f, g。

小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。

  • 例如:b 发光,其他二极管不发光可以用来表达一种字符。

  • 例如:c 发光,其他二极管不发光可以用来表达一种字符。

这种方案与上一行的方案可以用来表示不同的字符,尽管看上去比较相似。

  • 例如:a, b, c, d, e 发光,f, g 不发光可以用来表达一种字符。

  • 例如:b, f 发光,其他二极管不发光则不能用来表达一种字符,因为发光的二极管没有连成一片。

请问,小蓝可以用七段码数码管表达多少种不同的字符?

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


答案:80


题解一
位运算 & 打印图案 & 人眼观察:

x >> i & 1判断数字 x 的二进制排列中,第 i 位是否为 1

#include <iostream>
using namespace std;

int main()
{
	int cnt = 1;			
	for (int x = 1; x <= 127; x ++)
	{
		cout << "====" << cnt ++ << "====" << endl;
		for (int i = 0; i < 7; i ++)
		{
			if(i == 0)
			{
				if(x >> i & 1) cout << " --";
				cout << endl;
			}
			if(i == 1)
			{
				if(x >> i & 1) cout << '|';
				else cout << " ";
			}
			if(i == 2)
			{
				if(x >> i & 1) cout << "  |";
				cout << endl;
			}
			if(i == 3)
			{
				if(x >> i & 1) cout << " --";
				cout << endl;
			}
			if(i == 4)
			{
				if(x >> i & 1) cout << '|';
				else cout << " ";
			}
			if(i == 5)
			{
				if(x >> i & 1) cout << "  |";
				cout << endl;
			}
			if(i == 6)
			{
				if(x >> i & 1) cout << " --";
				cout << endl;
			}
		}
		cout << endl;
	}
	
	return 0;
}

题解二
DFS && 并查集:

解题思路

  1. 1 ~ 7 来代表 a ~ g
  2. 若某两个二极管相邻,那么就在它们之间连一条边;
  3. 先用 dfs 枚举出二极管的所有亮灭情况;
  4. 再用 并查集 判断是否只有一个连通块;
#include <iostream>
using namespace std;

const int N = 10;

int ans;
int p[N];
bool st[N];
int e[N][N];

int find(int x)
{
	if(p[x] != x) p[x] = find(p[x]);
	return p[x];
}

void dfs(int u)
{
	if(u == 8)
	{
		for (int i = 1; i <= 7; i ++) p[i] = i;
		
		for (int i = 1; i <= 7; i ++)
			for (int j = 1; j <= 7; j ++)
				if(e[i][j] && st[i] && st[j])
					p[find(i)] = find(j);
		
		int cnt = 0;
		for (int i = 1; i <= 7; i ++)
			if(st[i] && p[i] == i)
				cnt ++;
		
		if(cnt == 1) ans ++;
		return;				
	}
	
	st[u] = 1;				// 打开第 u 个二极管
	dfs(u + 1);
	
	st[u] = 0;				// 关闭第 u 个二极管
	dfs(u + 1);
} 

int main()
{
	e[1][2] = e[1][6] = 1;
	e[2][1] = e[2][7] = e[2][3] = 1;
	e[3][2] = e[3][7] = e[3][4] = 1;
	e[4][3] = e[4][5] = 1;
	e[5][4] = e[5][7] = e[5][6] = 1;
	e[6][1] = e[6][7] = e[6][5] = 1;
	e[7][2] = e[7][3] = e[7][5] = e[7][6] = 1;
	
	dfs(1);
	
	cout << ans << endl;
	return 0;
} 

蓝桥杯C/C++组省赛历年题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十一届蓝桥杯 ——七段码 的相关文章

  • cmd命令解密Bitlocker

    解锁 manage bde unlock C Recovery 加锁 manage bde lock C 解密 manage bde off C 加密 manage bde on C C表示解锁的盘符 解密需要一定时间 可以用manage
  • 利用python拼接图片代码_Python实现图片拼接的代码

    具体代码如下所示 import os from PIL import Image UNIT SIZE 220 the size of image save path root group dia zxb Code lip CycleGAN
  • python PriorityQueue遍历

    要写一段遍历PriorityQueue中每个元素的代码 去网上找到的都是for循环 get 但是这样会把PriorityQueue中的元素取出来 得 问了chatGPT 没想到真有用 from queue import PriorityQu
  • Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释 decode 条件 值1 返回值1 值2 返回值2 值n 返回值n 缺省值 该函数的含义如下 IF 条件 值1 THEN RETURN 翻译值1 ELSIF 条件 值2 THEN RETU
  • 最新QQ强制搜索Api接口

    强制搜索QQ接口 QQ隐藏搜索不到的把他QQ放在 后面然后直接搜索链接就可以搜索到了 QQ设置了隐藏无法搜索使用这个隐藏都不管用的 进入官网 https apis hackeus cn 找到强制搜索接口点进去 后面输入QQ号即可
  • 用户账户控制(无法截图/退出全屏/使用窗口模式)

    用户账户控制提示框无法截图 这是我遇到的问题 如下 就是这种对话框 一般是程序请求管理员权限运行 就会弹出 默认是全屏状态 无法截图 试过什么PrintScreen等均不行 这里提供一个办法 把该提示框改变为窗口模式 而非全屏 就可以使用截
  • 数据结构--二叉堆与优先队列

    堆的一些性质 1 堆是一颗完全二叉树 2 堆的顶端一定是 最大 最小 的 但是要注意一个点 这里的大和小并不是传统意义下的大和小 它是相对于优先级而言的 3 堆一般有两种样子 小根堆和大根堆 分别对应第二个性质中的 堆顶最大 堆顶最小 对于
  • 毕业设计 - 基于云平台的火灾报警器 - stm32 物联网 单片机 OneNET云平台

    文章目录 0 简介 1 项目简介 2 开发环境 3 火焰传感器 4 连接OneNET云平台 5 演示效果 6 最后 0 简介 Hi 大家好 学长今天向大家介绍一个 单片机项目 基于云平台的火灾报警器 stm32 物联网 单片机 OneNET
  • 【linux kernel】挂载根文件系统之rootfs

    挂载根文件系统之rootfs 文章目录 挂载根文件系统之rootfs 一 开篇 二 rootfs根文件系统 2 1 初始化rootfs 2 2 挂载rootfs文件系统 2 3 创建简单的rootfs根文件系统目录和文件 2 4 打开0 1
  • [Python系列-27]:命令行解析器argparse详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122276305 目录 第1章 arg
  • GB/T28181-2022相对2016版“基于TCP协议的视音频媒体传输要求“规范解读和技术实现

    规范解读 GB T28181 2022和GB T28181 2016规范 有这么一条 更改了附录 D 基于 TCP 协议的视音频媒体传输要求 见附录 D 2016 年版的附录 L 本文主要是针对GB T28181 2022里面提到的 基于
  • 【Java】Excel中添加下拉框

    0 两种方式 有两种方式可以实现 我仅在此记录一下 POI Hutool 1 使用 POI import org apache poi ss usermodel DataValidation import org apache poi ss
  • Web自动化元素定位

    元素定位就是通过元素的信息或元素层级结构来定位元素 要使用Web自动化操作元素 必须首先找到此元素 1 元素定位方式 1 1 基于元素属性特有的定位方式 1 id element driver find element by id id i

随机推荐

  • Python入门习题(91)——OpenJudge百练习题:汉诺塔问题

    OpenJudge百练第4147号习题 汉诺塔问题 题目描述 解题思路 参考答案 测试用例 小结 题目描述 来源 OpenJudge网站 百练习题集 第4147号习题 要求 总时间限制 1000ms 内存限制 65536kB 描述 一 汉诺
  • 猎聘发布《2019年中国5G人才需求大数据报告》

    在今年2月于西班牙巴塞罗那举办的2019世界移动通信大会上 华为 小米 vivo等中国企业先后扎堆发布了自己的5G手机 更加凸现了本次大会 5G商用产品 这一亮点 与此同时 5G成为大众新的关注焦点 借此契机 中高端人才职业发展平台猎聘推出
  • OVAL学习笔记

    很多其它好文章 http blog csdn net aap159951 article details 51131937 OVAL由MITRE公司开发 是一种用来定义检查项 脆弱点等技术细节的一种描写叙述语言 OVAL相同使用标准的XML
  • Android图片设置点击事件,Android EditText中插入图片并响应点击事件

    import android os Bundle import android app Activity import android content Context import android util Log import andro
  • 第3章 R语言编程基础——基于R软件的传统计算(超详细)

    3 1 统计分析 多元统计分析常用的 R 包和函数 3 1 1 多元回归分析 随机误差 计量模型 案例分析 M2 的建模与预测 残差的五数 估计参数的回归值 标准差 t检验量 p value 单变量显著性检验 拟合优度和 F 检验 Resi
  • bnu1331 赈灾捐款 C语言版

    北京师范大学珠海分校 Judge Online of ACM ICPC 1331 赈灾捐款 C语言版 include
  • ubuntu18.04下的mysql创建表

    ubuntu18 04下的mysql创建表 MySQL创建数据表 错误排查 出现报错 百度的解决思路 实际操作 MySQL创建数据表 删除表 drop table h data 创建表 CREATE TABLE IF NOT EXISTS
  • 第9章、图像按钮ImageButton(从零开始学Android)

    在Android App应用中 默认的Button按钮尽管我们可以通过样式变成圆角 但有时感觉仍然不够美观 我们可以通过采用图像按钮ImageButton改善这种现状 今天我们就一起学习一下图像按钮的使用 知识点 图像按钮ImageButt
  • 【数据结构课设】 浮点数计算器

    一 简介 1 功能介绍 实数的计算 支持取对数 幂次 开方及加减乘除运算 2 模块设计 1 菜单界面 2 计算器功能简介 3 计算器功能实现 3 计算器功能实现方法 1 字符串读入用户的表达式 2 处理字符串 包括提取实数以及中缀转后缀 维
  • idea开发中git合并的代码,

    方法一 将master主分支 合并到 子分支dev上 1 当前如果在dev分支上 先提交dev分支的代码到本地 然后推送到服务器 2 然后切换分支到master主分支上 先更新master主分支的代码到本地 然后主分支就是最新代码了 3 再
  • python 安卓模拟点击_Android后台模拟点击探索(附源码)

    工作中我们需要自制一套工具 其中遇到需要模拟点击事件的需求 类似按键精灵的功能 支持后台持续运行 满足触发条件时完成点击 经过一番探索 一共整理出两种不同的方案 AccessibilityService 和 adb shell命令 读者可自
  • Matlab中的c2d函数离散化

    把传递函数离散化 dsys c2d sys ts method 传函离散 num den tfdata dsys v 离散后提取分子分母 这里面的method有好多种 zoh 零阶保持 假设控制输入在采样周期内为常值 为默认值 foh 一阶
  • 【自动化测试】——robotframework实战(一)搭建环境

    一 前提准备 python 3 9 6 pip 下载 最新版本 setuptools 下载 最新版本 二 下载robotframework框架 管理员模式打开cmd 下载RF pip install robotframework 3 1 下
  • tomcat 配置域名

    Tomcat 配置域名 在windows中 首先找到conf下面的server xml 把Connector 标签中的端口改成80 然后把添加一个Host name为域名appBase为路径 如下 Engine 标签也是 最后在C盘 win
  • Android网络请求库的使用(okhttp、retrofit、rxjava)

    Android网络请求库的使用 前置工作 okhttp的基本使用 okhttp第一个demo okhttp的异步写法 更常见 GET请求中使用okhttp拼接参数 okhttp发起POST请求 拦截器第一个demo 打印请求的时间 retr
  • java并发编程实战

    Volatile变量 valatile是java提供的一种稍弱的同步机制 用来确保将变量的更新操作通知到其他线程 当把变量声明为volatile后 编译器与运行时都会注意到这个变量是共享的 因此不会将变量上的操作与其他内存操作一起重排序 1
  • 评测 AlibabaCloud 阿里云国际版 香港轻量云服务器的性能和网络怎么样

    此次站长带来的是 AlibabaCloud 阿里云国际版 香港轻量云服务器的评测 配置为512M内存 1核 20G云硬盘 官方网站 https www alibabacloud com 国际版 https www aliyun com 国内
  • AST混淆 二进制/八进制/十六进制数值及十六进制字符串,Unicode字符串还原

    二进制 八进制 十六进制数值及十六进制字符串 Unicode字符串还原插件 const simplifyLiteral NumericLiteral node if node extra 0 obx i test node extra ra
  • uniapp解决rich-text 富文本图片过大超出问题

    问题 如图所示 图片过大超出会超出手机屏幕 解决办法
  • 第十一届蓝桥杯 ——七段码

    题目描述 小蓝要用七段码数码管来表示一种特殊的文字 上图给出了七段码数码管的一个图示 数码管中一共有 7 段可以发光的二极管 分别标记为 a b c d e f g 小蓝要选择一部分二极管 至少要有一个 发光来表达字符 在设计字符的表达时