柬埔寨网站建设运营维护,公司网站建设选什么服务器,制作企业网页,免费网站开发思路#xff1a;
1、把灯管的连接转为图结构#xff0c;相邻的灯管即认为有边。
2、用深度搜索#xff0c;去计算有多少种不同字符。
3、因为有每种字符都会重复算两遍#xff0c;最后的结果需要数以2。
#include iostream
using namespace std;int graph[7][7… 思路
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;sumdfs(7, k);book[k] 0;}}return sum;
}
int main()
{cout dfs(7, 0) / 2;return 0;
}