题目:七段码(蓝桥OJ 595)

问题描述:

解题思路:
        枚举每一种可能组合(可以使用二进制数表示,每一个二进制就是一种组合),在判断是否符合题目要求的每一个发光灯管相邻(使用并查集方法确定,当每一个发光管属于同一领导则符合题目要求)。

题解:

#include <bits/stdc++.h>
using namespace std ;#define n 7
//abcdefg
//0123456
vector <int > edge[n] =//每一个灯管的相邻编号
{{1, 5}, //0的相邻编号{0, 2, 6},  //1{1, 3, 6},  //2{2, 4}, //3{3, 5, 6},  //4{0, 4, 6},  //5{1, 2, 4, 5},   //6
};int f[n] ;
int Find (int x )//找到最高领导
{if(f[x] == x) return x;f[x] = Find(f[x]) ;//压缩路径,提高效率return f[x];
}int check (int x)//检查该组合x是否符合,即每一个灯管都有同一个最高领导
{for (int i = 0 ; i  < n ; ++ i)//n为7,7个灯管{f[i] = i ;//初始老板为自己}for (int i = 0 ; i < n ; ++ i)//枚举所有编号灯管{if ((x >> i) & 1)//括号表示该组合x第i位上灯亮(即i编号灯管亮){for(int j : edge[i])//枚举i灯管的相邻灯管{if((1 << j) &x)//括号表示该组合x的i灯管存在相邻的j灯管亮{//使i编号与j编号的最高领导为同一个int ti = Find (i), tj = Find (j) ;f[ti] = tj ;}}}}//自此完成该组合最高领导合并。即相邻的灯泡都有同一领导,如果所有灯泡都相邻,那将有相同领导int t = -1 ;for (int i = 0 ; i < n ; ++ i){if ((1 << i) &x )//i灯管亮时{if (t == -1){t = Find (i) ;//将i灯管的最高领导赋给t}else{if (t != Find (i)) return 0 ;//存在不同最高领导的灯管。即说明灯管不相邻,停止循环并返回0,表明该组合存在不相邻灯管}}}return 1 ;
}
int main ()
{int ans = 0 ;for (int i = 1 ; i < (1 << n) ; ++ i)//枚举所有可能的二进制数(1 << n表示2^n){if (check (i) == 1){++ans ;}}printf ("%d", ans) ;return 0 ;
}

知识点:枚举子集,并查集

附:并查集模板:

        

#include<bits/stdc++.h>
using namespace std;const int N = 1e7 + 10;
int f[N];//f[i]表示i的最高领导 
int Find(int x)
{if(f[x] == x) return x ;//当老板为自己时即是最高领导 f[x] = Find(f[x]);//压缩路径。记录当时的最高领导,不需要每次都重复到执行相同次数** return f[x]; 
}void And(int x, int y)//合并xy,使其拥有共同领导 
{x = Find(x);//找到x的最高领导 y = Find(y);//找到y的最高领导 f[x] = y;//让原x的最高领导有一个领导,这样原xy就有一个共同最高领导 **
//	printf("%d%d%d",x ,f[x]); }int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int n, m;cin >> n >> m;for(int i = 1; i <= n; i++){f[i] = i;//让一开始领导都是自己本身 }	while(m--){int q, x, y;cin >> q >> x >> y;if(q == 1){//输入一表示将xy合并And(x, y); }else{x = Find(x);y = Find(y);if(x == y){				 cout//使用cout会存在缓存,不会立即输出,程序结束时才会输出 }else{puts("NO"); }}}return 0;
} 

 

        说明:从1到100的数组,最多执行10此操作。输入1表示合并(x,y同一最高领导),输入1以外表示查询是否同一最高领导 。

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

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

相关文章

首个云原生、分布式、全栈国产化银行核心业务系统投产上线丨TiDB × 杭州银行

日前&#xff0c;杭州银行新一代核心业务系统成功投产上线。 新核心系统是业内首个实际投产的云原生、分布式、全栈国产化的银行核心系统&#xff0c;是金融科技领域突破关键核心技术应用的重大实践。 新核心系统自上线以来运行安全稳定&#xff0c;大幅提升了业务处理效率&am…

ptaR7-6/zzuli2106 有去有回

题目 输入n个整数&#xff0c;第一趟按从左到右间隔k个数取数据&#xff0c;然后第二趟再从右到左间隔k-1个数取余下的数&#xff0c;如果数据没有取完&#xff0c;下一趟再间隔k-2个从左到右取数据&#xff0c;如此反复&#xff0c;直到所有的数据取完为止。注意&#xff1a;…

【算法】增减序列(贪心,差分)

题目 给定一个长度为 n 的数列 a1,a2,…,an&#xff0c;每次可以选择一个区间 [l,r]&#xff0c;使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样&#xff0c;并求出在保证最少次数的前提下&#xff0c;最终得到的数列可能有多少种…

03 - 系统调用

---- 整理自 王利涛老师 课程 实验环境&#xff1a;宅学部落 www.zhaixue.cc 文章目录 1. 系统调用基本概念1.1 一个系统调用的例子1.2 什么是系统调用&#xff1f;软件复用的角度 2. 软中断&#xff1a;系统调用的入口2.1 权限管理2.2 系统调用号2.4 man 2 syscall2.5 实验&am…

t2vec code

文章目录 执行过程preprocess.jl 解释h5 文件结构 执行过程 (base) zzqserver1:~/project/t2vec/preprocessing$ julia porto2h5.jl Processing 1710660 trips… 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 15…

HiDataPlus 3.3.2-005 搭建(个人的一点心得体会 x86 平台)

HDP 集群搭建 前置安装 yum -y install createrepo yum install -y lrzsz yum install -y wget yum install -y vim修改当前集群机器的主机名 hostnamectl set-hostname XXX​ 这里的 XXX 就是要设置的当前机器的主机名称。主机名称是集群唯一的&#xff0c;一定不要重复&am…

解决“百度网盘启动缓慢”问题

最近在使用百度网盘&#xff0c;双击桌面的《百度网盘》图标&#xff0c;发现有等好几分钟&#xff0c;软件才会启动。百度网盘启动太慢了&#xff0c;后面发现百度网盘&#xff0c;使用dll注入技术&#xff0c;附加到很多不相干的进程里&#xff0c;比如附加explorer进程、附加…

使用阿里云镜像创建一个Spring Boot项目

由于现在的idea在创建项目时已经不支持Java8版本了&#xff0c;如果我们还想用8版本&#xff0c;可以使用阿里云镜像创建。所以得改变原有的地址为&#xff1a;https://start.aliyun.com springboot版本选择2开头的任意版本的。 1.配置6个依赖 2.改变下载依赖地址 下载依赖默认…

强化学习求解TSP(八):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…

UE 引擎工具笔记

2023虚幻技术分享会视频 1.2023年虚幻引擎最新功能和技巧 [UFSH2023]2023年虚幻引擎最新功能和技巧 | Chris Murphy Epic Games_哔哩哔哩_bilibili 推荐细看下.总结了UE5的功能大概 2.调试技巧 [UFSH2023]总有一个你不知道的虚幻引擎调试技巧 | 陈拓 Epic Games_哔哩哔哩_…

WPF XAML(一)

一、XAML的含义 问&#xff1a;XAML的含义是什么&#xff1f;为什么WPF中会使用XAML&#xff1f;而不是别的&#xff1f; 答&#xff1a;在XAML是基于XML的格式&#xff0c;XML的优点在于设计目标是具有逻辑性易读而且简单内容也没有被压缩。 其中需要提一下XAML文件在 Visu…

5、MAE:探索视觉预训练模型

目录 1、论文 2、背景与动机 3、回答的问题 4、创新与卖点 5、实现细节 模型框架 具体步骤 简单代码示例 6、一些资料 1、论文 Masked Autoencoders Are Scalable Vision Learnershttps://arxiv.org/pdf/2111.06377.pdf 2、背景与动机 在深度学习和计算机视觉的领域中…