当前位置: 首页 > news >正文

OD Linux发行版本

题目描述:
Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为MintDebian也存在关联。
发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。
给你一个 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)和另外三个都不相关,所以存在两个发行版集,发行版集中发行版的数量分别是31,所以输出3
public class Linux发行版本 {// n*n的矩阵private static int n;private static int[][] ints;// 用来记录目前版本集中的版号private static Set<Integer> set;public static void main(String[] args) {// 输入Scanner sc = new Scanner(System.in);n = sc.nextInt();// 填充初始矩阵ints[][]ints = new int[n][n];for (int i = 0; i < n; i++){for (int j = 0 ;j < n; j++){ints[i][j] = sc.nextInt();}}// 从当前集合开始已经关联的一个最大的linux版本集合Set<Integer> temp = new HashSet<Integer>();int max = 0;for (int i = 0; i < n; i++){if (!temp.contains(i)){// 已经关联过的则不需要再做处理set = new HashSet<Integer>();handle(i);max = Math.max(max, set.size());temp.addAll(set);}}System.out.println(max);}public static void handle(int linux){for (int i = linux; i < n; i++){if (!set.contains(i) && ints[linux][i] == 1){set.add(i);// 添加到已关联的版本handle(i);}}}
}

相关文章:

  • JavaOOP篇----第十四篇
  • leetcode 131. 分割回文串
  • Uniapp + Vue3 封装请求工具挂载全局
  • windows平台配置vsCode_CMake_Clang/LLVM_ninja环境与测试
  • 堆与二叉树(下)
  • 深度学习 | 基础卷积神经网络
  • 智能优化算法应用:基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • C语言沉浸式刷题【C语言必刷题】
  • rk3588 之启动
  • 初识QT(上篇):What Qt
  • 【顶级快刊】IEEE(Trans),审稿快仅2个月录用,入选CCF-B,现在投最快!
  • ZKP Mathematical Building Blocks (2)
  • Spring MVC 方法中添加参数、HttpServletRequest 和 HttpServletResponse 对象
  • Netty-4-网络编程模式
  • 【clickhouse】在CentOS中离线安装clickhouse
  • 分享一款快速APP功能测试工具
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • angular2 简述
  • Centos6.8 使用rpm安装mysql5.7
  • Github访问慢解决办法
  • javascript 总结(常用工具类的封装)
  • JAVA并发编程--1.基础概念
  • Java精华积累:初学者都应该搞懂的问题
  • jquery cookie
  • Spring Cloud Feign的两种使用姿势
  • tweak 支持第三方库
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 阿里云Kubernetes容器服务上体验Knative
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 区块链分支循环
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 为视图添加丝滑的水波纹
  • 做一名精致的JavaScripter 01:JavaScript简介
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 湖北分布式智能数据采集方法有哪些?
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #define 用法
  • #define、const、typedef的差别
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #mysql 8.0 踩坑日记
  • #宝哥教你#查看jquery绑定的事件函数
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (39)STM32——FLASH闪存
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (rabbitmq的高级特性)消息可靠性
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (五)关系数据库标准语言SQL
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)原始图像数据和PDF中的图像数据
  • (转载)Google Chrome调试JS
  • .Net MVC4 上传大文件,并保存表单