本文主要是介绍蓝桥杯(七段码,C++),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
1、把灯管的连接转为图结构,相邻的灯管即认为有边。
2、用深度搜索,去计算有多少种不同字符。
3、因为有每种字符都会重复算两遍,最后的结果需要数以2。
#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;
}
这篇关于蓝桥杯(七段码,C++)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!