首页 > 系统相关 >【华为OD机试真题2023 JAVA】Linux发行版的数量

【华为OD机试真题2023 JAVA】Linux发行版的数量

时间:2023-03-25 15:05:02浏览次数:30  
标签:JAVA 真题 int res Linux 关联 MAXN 发行版 Ubuntu


Linux发行版的数量 知识点DFS搜索BFS搜索并查集

时间限制:1s 空间限制:256MB 限定语言:不限

题目描述:
Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为Mint同Debian也存在关联。

发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。

给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个发行版和第 j
个发行版直接关联,而 isConnected[i][j] = 0 表示二者不直接相连。

返回最大的发行版集中发行版的数量

输入描述: 第一行输入发行版的总数量N,之后每行表示各发行版间是否直接相关

输出描述: 输出最大的发行版集中发行版的数量

补充说明: 1 <= N <= 200

示例1 输入: 4

1 1 0 0

1 1 1 0

0 1 1 0

0 0 0 1

输出: 3

说明:
Debian(1)和Ubuntu(2)相关,Mint(3)和Ubuntu(2)相关,EeulerOS(4)和另外三个都不相关,所以存在两个发行版集,发行版集中发行版的数量分别是3和1,所以输出3

#include<bits/stdc++.h>
#define MAXN 111
using namespace std;
vector<pair<int,int>> E[MAXN];
int d[MAXN][MAXN];
int res = 0;
int n;
set<int> s;
// 走pos 当前路径  走了那些节点
int step(int pos,int value,set<int> steps){
    if(value > res){
        res = value;
    }
    for(int i = 1;i <= n;i++){
        if(d[pos][i] == 0 || pos == i){
            continue;
        }
        if(steps.count(i)){
            continue;
        }
        steps.insert(i);
        step(i,value+1,steps);
        steps.erase(i);
    }
}

int main()
{
    freopen("D:\\code\\clion\\in.txt","r",stdin);
    cin >> n;
    for(int i = 1;i <= n;i++){
        for(int j = 1;j <= n;j++)
            cin >> d[i][j];
    }

    for(int i = 1;i <= n;i++){
        s.insert(i);
        step(i,1,s);
        s.erase(i);
    }
    cout << res << endl;
}


标签:JAVA,真题,int,res,Linux,关联,MAXN,发行版,Ubuntu
From: https://blog.51cto.com/u_15704977/6149489

相关文章

  • java中的CompletableFuture的实现异步操作的基本介绍
    在CompletableFuture类中,存在四种异步操作方法:第一种:publicstaticCompletableFuture<Void>runAsync(Runnablerunnable){returnasyncRunStage(ASYNC_POOL,......
  • linux操作--1
    快照---Linux中快照功能类似于备份,当我们在操作linux系统时担心系统会出未知的异常,可以将系统进行备份。在vmware中右击想要操作的系统就能找到。2.**克隆与移植---l......
  • java——Zookeeper学习——zk概览转载
    一、ZooKeeper简介ZooKeeper是一个分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。1.1、数据结构ZooKeeper......
  • Java使用IntelliJ IDEA创建控制台程序并通过JDBC连接到数据库
    1、创建一个java控制台程序并测试首先,直接新建一个默认的空的Java模块即可,随便取个名字在src目录下右键->新建->创建一个包,随便取个名字在包中创建一个Test类,写个helloworld......
  • Java使用IntelliJ IDEA创建一个基于Swing的GUI图形化程序,打包发布为jar
    1、创建GUI窗体首先,直接新建一个默认的空的Java模块即可,随便取个名字之后再src目录下右键,新建,创建一个Swing的GUI窗体,随便取个名字给主窗体改个名字到java代码中生成一个窗......
  • java学习日记20230325-模版设计模式
    模版设计模式利用多态的动态绑定,将通用的方法设计为模版抽象类,通过子类继承重写抽象方法实现模版调用。 父类抽象类abstractpublicclassTemplate{......
  • linux三剑客之grep详解
    1.什么是Grepgrep(GolobalRegularExpressionprint)是Linux系统中一个强大的文本搜索工具,也是俗称的搜索三兄弟之一,其他两个是awk和sed,grep可以把搜索到的内容打印到屏......
  • Linux环境下如何解压jar包,压缩jar包文件
    1.解压jar包文件里面的文件jarxvfjarxvftest.jarBOOT-INF/classes/com/hsc/test/MyTest.class解释说明:解压test.jar包里面的MyTest.class文件到当前目录下解压后我们......
  • Java开发 - ELK初体验
    前言前面我们讲过消息队列,曾提到消息队列也具有保存消息日志的能力,今天要说的EL看也具备这个能力,不过还是要区分一下功能的。消息队列的日志主要指的是Redis的AOF,实际上只是......
  • Java - 配置中心初体验
    目录前言配置中心介绍什么是配置中心Nacos配置中心数据结构命名空间分组服务配置中心添加配置读取配置本地添加依赖本地添加配置测试结语前言前文讲了ELK,ELK说简单也简单,说......