您的位置:首页 > 房产 > 建筑 > 在线玩的游戏网站_人人秀h5制作软件下载_营销渠道的概念_seo和竞价排名的区别

在线玩的游戏网站_人人秀h5制作软件下载_营销渠道的概念_seo和竞价排名的区别

2025/4/21 12:14:50 来源:https://blog.csdn.net/2301_78763076/article/details/147372947  浏览:    关键词:在线玩的游戏网站_人人秀h5制作软件下载_营销渠道的概念_seo和竞价排名的区别
在线玩的游戏网站_人人秀h5制作软件下载_营销渠道的概念_seo和竞价排名的区别

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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com