蓝桥杯(七段码,C++)

思路:

1、把灯管的连接转为图结构,相邻的灯管即认为有边。

2、用深度搜索,去计算有多少种不同字符。

3、因为有每种字符都会重复算两遍,最后的结果需要数以2。

cpp 复制代码
#include <iostream>
using namespace std;
 int graph[7][7] = {//转化成图
      {1,1,0,0,0,1,0},
      {1,1,1,0,0,0,1},
      {0,1,1,1,0,0,1},
      {0,0,1,1,1,0,0},
      {0,0,0,1,1,1,1},
      {1,0,0,0,1,1,1},
      {0,1,1,0,1,1,1}
    };
int book[7] = { 0 };//记录灯管是否被点亮
int dfs(int n, int i) //本灯管亮后可能构成几种字符=下一根灯管亮+其连通分支的数量
{
    int sum = 1;
    for (int k = 0; k < n; k++)
    {
        if (graph[i][k] == 1 && book[k] == 0)
        {
            book[k] = 1;
            sum+=dfs(7, k);
            book[k] = 0;
        }
    }
    return sum;
}
int main()
{
    cout << dfs(7, 0) / 2;
    return 0;
}
相关推荐
拿我格子衫来14 分钟前
搭建公司产品wiki的开源框架选型,注重介绍wikijs框架
程序人生·信息可视化·职场和发展
mjhcsp1 小时前
P14795 [JOI 2026 二次预选] 分班 / Class Division
数据结构·c++·算法
wildlily84272 小时前
C++ Primer 第5版章节题 第十章
开发语言·c++
天真小巫2 小时前
2025.12.30总结
职场和发展
007php0072 小时前
Git 操作偏门指南:常用和隐藏命令与问题解决
java·git·面试·职场和发展·golang·jenkins·php
低频电磁之道2 小时前
C++中类的this指针
开发语言·c++
水饺编程3 小时前
Visual Studio 软件操作:添加附加依赖项
c语言·c++·windows·visual studio
十八岁讨厌编程3 小时前
【算法训练营 · 补充】LeetCode Hot100(下)
算法·leetcode·职场和发展
-To be number.wan3 小时前
C++ 进阶技巧:如何让 cout << 自定义对象 正常输出?
开发语言·c++
序属秋秋秋4 小时前
《Linux系统编程之进程控制》【进程创建 + 进程终止】
linux·c语言·c++·操作系统·进程·进程创建·进程终止