七段码 路径压缩 并查集 dfs

12.七段码 - 蓝桥云课

将七个二极管映射为 1-7 

开一个二维矩阵 为 相邻的边连上线 

edge[1][2] = edge[1][6] = 1;edge[2][1] = edge[2][3] = edge[2][7] = 1;edge[3][2] = edge[3][4] = edge[3][7] = 1;edge[4][3] = edge[4][5] = 1;edge[5][4] = edge[5][6] = edge[5][7] = 1;edge[6][1] = edge[6][5] = edge[6][7] = 1;edge[7][2] = edge[7][3] = edge[7][5] = edge[7][6] = 1;

由于数据量比较小 一共也就    2^7 = 128种状态 直接搜索枚举每个二极管亮还是灭 

将连在一起的边视为连通块 递归到最后一层 判断的时候 查看 亮着的联通块是否大于1 如果等于1则方案数+1 

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int edge[10][10];
int p[10];
bool st[10];
int ans = 0;
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 <8;i++){for(int j = 1 ; j<8;j++){if(edge[i][j] && st[i]&&st[j] ){///如果两者相邻并且都亮着 合并为一个联通块  p[find(i)] = find(j);//指向同一个根节点 }}}	int cnt = 0 ;for(int i = 1;i<8;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(){edge[1][2] = edge[1][6] = 1;edge[2][1] = edge[2][3] = edge[2][7] = 1;edge[3][2] = edge[3][4] = edge[3][7] = 1;edge[4][3] = edge[4][5] = 1;edge[5][4] = edge[5][6] = edge[5][7] = 1;edge[6][1] = edge[6][5] = edge[6][7] = 1;edge[7][2] = edge[7][3] = edge[7][5] = edge[7][6] = 1;dfs(1);cout<<ans;return 0;
}

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

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

相关文章

科技如何改变世界?

技术是我们日常生活中不可或缺的一部分&#xff0c;以至于我们常常忘记了它的重要性。如果你正在科技领域工作&#xff0c;或者希望进入该领域&#xff0c;你可能是众多有使命感的人之一&#xff0c;希望知道自己的日常工作能为社会或地球的长远利益做出贡献。 别再四处寻找了…

抽象的https原理简介

前言 小明和小美是一对好朋友&#xff0c;他们分隔两地&#xff0c;平时经常写信沟通&#xff0c;但是偶然被小明发现他回给小美的信好像被人拆开看过&#xff0c;甚至偷偷被篡改过。 对称加密算法 开头的通信过程比较像HTTP服务器与客户端的通信过程&#xff0c;全明文传输…

高级java每日一道面试题-2025年4月13日-微服务篇[Nacos篇]-Nacos如何处理网络分区情况下的服务可用性问题?

如果有遗漏,评论区告诉我进行补充 面试官: Nacos如何处理网络分区情况下的服务可用性问题&#xff1f; 我回答: 在讨论 Nacos 如何处理网络分区情况下的服务可用性问题时&#xff0c;我们需要深入理解 CAP 理论以及 Nacos 在这方面的设计选择。Nacos 允许用户根据具体的应用…

python解压文件 zip tar.gz tar.xz

以下代码为解压zip包 tar包文件 zip_path&#xff1a;文件绝对路径 output_folder&#xff1a;文件解压后存放的文件夹路径 def extract_file(zip_path, output_folder):# 支持解压zip tar tar.gz tar.xz .tar.bz2# 确保输出文件夹存在os.makedirs(output_folder, exist_okT…

网络基础(协议,地址,OSI模型、Socket编程......)

目录 一、计算机网络发展 二、协议 1.认识协议 2.OSI七层模型 3.TCP/IP 五层(或四层)模型 4.协议本质 三、网络传输流程 1.MAC地址 2.协议栈 3.IP地址 IP地址 vs MAC地址 1. 核心区别 2. 具体通信过程类比 3. 关键总结 为什么需要两者&#xff1f; 4.协议栈图解…

生成式AI对话中提示词策略:明确问题、明确目标和提供背景信息是最有效的策略

生成式AI对话中提示词策略:明确问题、明确目标和提供背景信息是最有效的策略 最有效的提示词策略包括明确问题、明确目标和提供背景信息。普适性有效提示词策略可分为三类:明确需求与精确指引型、清晰解释与逻辑排序型、拆解任务与多样化表达型。[局限]数据来源于中国用户,…

AtCoder ABC402 ABCD

A - CBC 把大写字母按顺序连起来 B - Restaurant Queue 一眼队列&#xff0c;stl模拟就行 C - Dislike Foods 显然&#xff0c;每次克服暴力枚举每个菜肴会超时。 然而题目中给了每个菜肴的配菜个数&#xff0c;不妨换过来统计每个配菜用在了哪些菜肴。每次克服时&#x…

Transformer 架构 - 解码器 (Transformer Architecture - Decoder)

欢迎回到我们的 Transformer 系列教程!在上一篇中,我们详细探讨了 Transformer 的编码器,它负责将输入的源序列(比如源语言句子)转换为一系列包含丰富上下文信息的向量表示。 现在,我们将把目光投向 Transformer 的另一半——解码器 (Decoder)。解码器负责接收编码器的输…

神经网络与模型训练过程笔记

1.专有名词 ANN 人工神经网络&#xff0c;一种受生物神经元启发的监督学习算法。输入数据通过网络中的层级函数传递&#xff0c;激活特定神经元。函数复杂度越高&#xff0c;模型对数据的拟合能力越强&#xff0c;预测精度越高。 偏置项 其中x下表从1开始的是输入变量&#xf…

【计算机网络 | 第二篇】常见的通信协议(一)

HTTP和HTTPS有什么区别&#xff1f; 端口号&#xff1a;HTTP默认是80端口&#xff0c;HTTPS默认是443。 URL前缀&#xff1a;HTTPHTTP 的 URL 前缀是 http://&#xff0c;HTTPS 的 URL 前缀是 https://。 安全性和资源消耗&#xff1a;HTTP协议运行在TCP上&#xff0c;都是明…

【python实用小脚本系列】用 Python 自己手搓一个给视频“静音”的小脚本,批量处理,轻松高效制作“无声电影”!

嘿&#xff0c;小伙伴们&#xff01;今天我来给大家介绍一个超实用的 Python 小工具——一个能给视频“静音”的“声音消除器”&#xff01;是不是听起来很酷&#xff1f;想象一下&#xff0c;你可以把任何有声视频变成无声视频&#xff0c;是不是很有趣&#xff1f;接下来&…

【gpt生成-总览】怎样才算开发了一门编程语言,需要通过什么测试

开发一门真正的编程语言需要经历完整的设计、实现和验证过程&#xff0c;并通过系统的测试体系验证其完备性。以下是分阶段开发标准及测试方法&#xff1a; 一、语言开发核心阶段 1. 语言规范设计&#xff08;ISO/IEC 标准级别&#xff09; ​​语法规范​​&#xff1a;BNF/…

leetcode222 完全二叉树的节点个数

完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层&#xff08;从第 0 层开始&#xff09;&#xff0c;则该层…

若依集成BladeX单点登录的令牌管理与api请求流程

目录 概述系统架构单点登录流程令牌管理机制接口调用流程关键代码实现数据结构安全性考虑常见问题与解决 概述 本文档详细说明若依系统如何实现与BladeX的单点登录集成&#xff0c;包括令牌管理和接口调用的完整流程。整个集成采用基于OAuth2的授权码流程&#xff0c;允许用…

《AI大模型应知应会100篇》第27篇:模型温度参数调节:控制创造性与确定性

第27篇&#xff1a;模型温度参数调节&#xff1a;控制创造性与确定性 摘要 在大语言模型的使用中&#xff0c;“温度”&#xff08;Temperature&#xff09;是一个关键参数&#xff0c;它决定了模型输出的创造性和确定性之间的平衡。通过调整温度参数&#xff0c;您可以根据任…

爱普生SG2520VGN差分晶振5G基站的时钟解决方案

在 5G 通信时代&#xff0c;数据流量呈爆发式增长&#xff0c;5G 基站作为信号的核心中转枢纽&#xff0c;承载着前所未有的数据传输与处理重任。从海量的物联网设备连接&#xff0c;到高速移动用户的数据交互&#xff0c;每一个环节都对基站的性能提出了严苛要求。而精准稳定的…

GitHub SSH连接终极解决方案

GitHub SSH连接终极解决方案&#xff1a;443端口修改多场景故障排查指南 一、问题现象速查 当开发者执行以下命令时出现连接异常&#xff1a; ssh -T gitgithub.com常见报错类型&#xff1a; 经典端口阻塞ssh: connect to host github.com port 22: Connection refused密钥验…

面向新一代扩展现实(XR)应用的物联网框架

中文标题&#xff1a; 面向新一代扩展现实&#xff08;XR&#xff09;应用的物联网框架 英文标题&#xff1a; Towards an IoT Framework for the New Generation of XR Applications 作者信息 Joo A. Dias&#xff0c;UNIDCOM - IADE&#xff0c;欧洲大学&#xff0c;里斯本&…

Qt unknown module(s) in qt:serialport解决方法

在Ubuntu和CentOS系统中,若使用Qt时遇到Unknown module(s) in QT: serialport错误,通常是由于未正确安装Qt的串口模块(QSerialPort)或项目配置不当导致。以下是针对两种系统的解决方案: 一、安装Qt串口模块 1. Ubuntu/Debian系列 安装开发包: 执行以下命令安装Qt5串口模…

阀门轴承电动车工件一键精修软件

若需定制开发“ComfyUI意见精修软件” 技术栈建议&#xff1a; 前端&#xff1a;React/Vue Figma插件API&#xff08;直接读取设计稿&#xff09;。 后端&#xff1a;Node.js/Python NLP库&#xff08;spaCy/NLTK&#xff09;。 数据库&#xff1a;MongoDB&#xff08;存储…