华为OD刷题C卷 - 每日刷题 14(可以组成网络的服务器、用连续自然数之和来表达整数)

1、(可以组成网络的服务器):

这段代码是解决“可以组成网络的服务器”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,以及一个辅助方法bfs,用于统计机房中最大的局域网包含的服务器个数。

main方法首先读取二维数组的行数n和列数m,然后读取服务器信息矩阵matrix。接着,调用getResult方法并打印结果。

getResult方法遍历服务器信息矩阵,对于每个服务器(用1表示),使用bfs方法进行广度优先搜索,以找到最大的局域网。bfs方法使用一个队列path来存储待检查的服务器坐标,并通过邻接节点的检查来扩展局域网。每找到一个新服务器,就将其添加到队列中,并将其状态标记为已访问(用0表示)。当队列为空时,表示已经找到了从当前服务器出发的最大局域网。

最后,getResult方法返回最大的局域网大小。

2、(用连续自然数之和来表达整数):

这段代码是解决“用连续自然数之和来表达整数”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于找出一个整数的所有可能的连续自然数之和的表达式,并打印每种表达式以及它们的个数。

main方法读取目标整数n,然后调用getResult方法并打印所有可能的表达式和最终的表达式个数。

getResult方法使用滑动窗口技术来找出所有可能的连续自然数序列,这些序列的和等于目标整数n。通过移动左右指针leftright,代码可以找到所有可能的连续序列,并记录它们的起始索引和结束索引。找到所有序列后,使用StringJoiner来构建每个序列的表达式字符串,并按序列长度升序排列。

最后,getResult方法返回一个包含所有表达式和最终表达式个数的列表。

package OD233;import java.util.LinkedList;
import java.util.Scanner;/*** @description 可以组成网络的服务器* @level 6* @score 200* @url https://hydro.ac/d/HWOD2023/p/OD233*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {static int[][] offsets = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};private static int n;private static int m;private static int[][] matrix;public static void main(String[] args) {Scanner sc = new Scanner(System.in);//n行 m列n = sc.nextInt();m = sc.nextInt();//服务器矩阵matrix = new int[n][m];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {matrix[i][j] = sc.nextInt();}}//输出最大局域网的服务器个数System.out.println(getResult());}public static int getResult() {//记录题解,不断更新较大值int ans = 0;//遍历,从每一个起点扩散for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {//如果是1,则进行bfs递归,找到该点最多能扩散的局域网服务器个数if (matrix[i][j] == 1) {ans = Math.max(ans, bfs(i, j));}}}return ans;}/*** 从matrix[i][j]为中心,扩散寻找最多的局域网服务器* 类似LeetCode200题,岛屿数量 : https://leetcode.cn/problems/number-of-islands/description/** @param i* @param j* @return int* @create 2024/4/3 17:13*/public static int bfs(int i, int j) {//储存找到服务器的坐标LinkedList<int[]> path = new LinkedList<>();//初始matrix[i][j]=1,所以初始count=1matrix[i][j] = 0;int count = 1;//添加起点path.add(new int[]{i, j});while (path.size() > 0) {int[] pos = path.removeFirst();int x = pos[0];int y = pos[1];//向四周位移扩散for (int[] offset : offsets) {int newX = x + offset[0];int newY = y + offset[1];//如果没有越界且是服务器if (newX >= 0 && newX < n && newY >= 0 && newY < m && matrix[newX][newY] == 1) {//找到的服务器+1count++;//添加到坐标集合path.add(new int[]{newX, newY});//把该点设为1,防止回头matrix[newX][newY] = 0;}}}//返回最大局域网服务器个数return count;}}
package OD241;import java.util.*;/*** @description 用连续自然数之和来表达整数* @level 5* @score 100*//*** 题目描述* 一个整数可以由连续的自然数之和来表示。* <p>* 给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式* <p>* 输入描述* 一个目标整数T (1 <=T<= 1000)* <p>* 输出描述* 该整数的所有表达式和表达式的个数。* <p>* 如果有多种表达式,输出要求为:自然数个数最少的表达式优先输出,每个表达式中按自然数递增的顺序输出,具体的格式参见样例。* <p>* 在每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数。*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();//存放结果ArrayList<String> result = getResult(n);result.forEach(System.out::println);}public static ArrayList<String> getResult(int t) {//存放结果ArrayList<String> result = new ArrayList<>();//创建一个从1-n的数组,使用滑动窗口int[] arr = new int[t];for (int i = 0; i < t; i++) {arr[i] = i + 1;}int left = 0;int right = 1;//初始化和int sum = arr[left];//存放步骤和ArrayList<int[]> ans = new ArrayList<>();//当左指针到达数组末尾,结束循环while (left < t) {//如果小于n,则左指针移动if (sum > t) {sum -= arr[left++];} else if (sum == t) {//记录此时的数组元素 包括left 不包含rightans.add(Arrays.copyOfRange(arr, left, right));//窗口往右移动sum -= arr[left++];//此时right有可能已经到达数组末尾if (right >= t) {break;}//没有到达边界则往右移动sum += arr[right++];} else {//sum<n 右指针往右移动sum += arr[right++];}}//排序 按长度升序ans.sort(Comparator.comparing(a -> a.length));ans.forEach(a -> {StringJoiner sj = new StringJoiner("+", t + "=", "");//前缀是n= 连接符是+ 后置是""Arrays.stream(a).forEach(i -> sj.add(i + ""));result.add(sj.toString());});result.add("Result:" + ans.size());return result;}
}

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

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

相关文章

ethercat igh可能出现的两个bug

1. 插入网线直接就进入op状态&#xff0c;这可能是因为 从站支持eoe协议 igh对eoe协议支持的从站默认使其直接进入op状态&#xff0c;可以修改igh源码编译选项&#xff0c;不启动eoe协议 可以参考&#xff1a; igh编译选项 igh一些EoE协议说明 Automatic Configuration&#…

小程序简单版录音机

先来看看效果 结构 先来看看页面结构 <!-- wxml --><view class"wx-container"><view id"title">录音机</view><view id"time">{{hours}}:{{minute}}:{{second}}</view><view class"btngroup"…

169.二叉树:完全二叉树的节点个数(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr, right(nullptr) {}* Tree…

“墨者杯”网络安全大赛wp

漏洞利用01 504错误修改为POST提交拿到php源码&#xff0c; 查看逻辑$_POST[roam1] ! $_POST[roam2] && sha1($_POST[roam1]) sha1($_POST[roam2]) 采用数组绕过 roam1[]1&roam2[]2 拿到phpinfo&#xff0c;观察发现 这里的意思是每个php页面都包含这个f14…

ffmpeg视频,音频,图片支持的格式转换

ffmpeg支持的各种格式转换方法几乎涵盖了所有常见的音频、视频和图像格式之间的转换。 debian上安装 # apt-get install ffmpeg -y 以下是一些常见的格式转换示例&#xff1a; 视频格式转换&#xff1a; 将MP4转换为GIF&#xff1a; # ffmpeg -i animation.gif.mp4 animati…

微服务网关Gateway(上)

大家好呀&#xff0c;我是苍何。 这年头&#xff0c;大家都在开始卷简历了&#xff0c;我也看了很多同学的简历&#xff0c;其中有一个同学的简历&#xff0c;我印象最为深刻&#xff0c;他的项目经历中&#xff0c;写了自定义 Gateway 过滤器实现统计接口调用耗时&#xff0c…

docker-compose部署Redis6.0

目录 1.部署环境 2.docker部署 3.docker-compose部署 4.redis 6.0部署 4.1拉起公网镜像 4.2 创建保存数据和配置文件的目录 4.3本地镜像打标签 4.4redis.yml配置 4.5验证 4.6问题记录 1.部署环境 系统&#xff1a;CentOS 容器&#xff1a;docker和docker-compose 2.doc…

力扣每日一题 6/7

3038.相同分数的最大操作数目I [简单] 题目&#xff1a; 给你一个整数数组 nums &#xff0c;如果 nums 至少 包含 2 个元素&#xff0c;你可以执行以下操作&#xff1a; 选择 nums 中的前两个元素并将它们删除。 一次操作的 分数 是被删除元素的和。 在确保 所有操作分数…

力扣141. 环形链表

Problem: 141. 环形链表 文章目录 题目描述思路复杂度Code 题目描述 思路 定义快慢指针fast、slow&#xff0c;当fast ! null && fast.next ! null时fast每次走两步、slow走一步&#xff0c;当fast和slow相遇时&#xff0c;则说明存在环 复杂度 时间复杂度: O ( n ) O…

无锡哲讯携手SAP,赋能装备制造业数字化转型

在当今快速发展的工业4.0时代&#xff0c;装备制造业作为国民经济的重要支柱&#xff0c;正面临着前所未有的机遇与挑战。无锡哲讯智能科技有限公司凭借其深厚的行业经验和专业的SAP实施能力&#xff0c;为装备制造业提供全面的数字化解决方案&#xff0c;助力企业实现智能化、…

知识图谱的应用---智慧政务

文章目录 智慧政务典型应用 智慧政务 智慧政务即通过“互联网政务服务”构建智慧型政府&#xff0c;利用云计算、移动物联网、人工智能、数据挖掘、知识管理等技术&#xff0c;提高政府在办公、监管、服务、决策中的智能水平&#xff0c;形成高效、敏捷、公开、便民的新型政府&…

TPM仿真环境搭建

文章目录 背景及注意事项一、CMake二、m4三、GNU MP Library四、TPM_Emulator五、TSS协议栈&#xff08;trousers-0.3.14.tar.gz&#xff09;六、 tpm-tools七、查看是否安装成功八、测试 TPM环境&#xff08;需要开三个终端分别运行&#xff09;8.1 启动TPM &#xff08;第一个…

有关大学的搜题软件?六个不限次的公众号和软件分享啦 #其他#职场发展

有些同学虽然喜欢刷题&#xff0c;但是如果参考答案遗失、找不到参考答案&#xff0c;导致做好的题目无法校对&#xff0c;就会比较烦恼了。不过不用担心&#xff0c;今天就给大家分享一些超好用的搜题工具 1.彩虹搜题 这是个老公众号了 它不仅可以查到大学题目&#xff0c;…

工厂为什么需要各种看板

人眼天生对图像识别速度更快更准确&#xff0c;例如图形&#xff0c;颜色等。人们往往更易于通过视觉信息来获取和理解信息&#xff0c;可视化的看板在工厂管理中也是司空见惯。 那么工厂看板如何帮助企业实现降本、提质、增效&#xff1f; 1、生产计划和生产进度的管理&#…

arm开发板移植sshd

移植sshd 文章目录 移植sshd1、准备工作2、编译zlib3、编译openssl4、编译openssh5、其他旧版本6、部署测试7、多用户配置8、sshd_config示例 1、准备工作 准备openssh-9.5p1.tar.gz openssl-1.1.1w.tar.gz zlib-1.2.11.tar.gz 我在http://10.45.156.100/IG2100/IG2100.git …

git-daemon命令开启git服务器

文章目录 git daemon命令开启git服务器&#xff0c;供局域网其他电脑拉取、上传代码1. 创建文件夹&#xff0c;用于存放repository2. 把git代码文件夹放到创建的文件夹中3. 启动git带的服务&#xff0c;开启仓库4. 局域网中其他电脑设置仓库地址 git daemon命令开启git服务器&a…

09.1手工制作docker镜像-多服务ssh+nginx

手工制作docker镜像-多服务sshnginx 一个容器多个服务 基于centos6.9系统添加yum源与epel源 安装nginx、ssh服务 yum install nginx openssh-server -y因镜像系统为纯系统&#xff0c;没有root密码&#xff0c;所以需要配置密码 echo 123456 | passwd --stdin root注&#x…

kafka-消费者组(SpringBoot整合Kafka)

文章目录 1、消费者组1.1、使用 efak 创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本1.2、创建生产者发送消息1.3、application.yml配置1.4、创建消费者监听器1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、消费…

HTML5拖放(Drag and Drop)全面指南:让网页互动起来

HTML5 引入了许多令人兴奋的新特性&#xff0c;其中之一便是原生支持的拖放&#xff08;Drag and Drop&#xff09;功能&#xff0c;它极大地丰富了网页的交互体验&#xff0c;允许用户直接在页面上通过鼠标操作来移动元素。本文将深入浅出地介绍如何在你的网页中实现拖放功能&…

IT闲谈-WEB前端主流三大框架

目录 一、Angular二、React三、Vue.js小结 前言 这里给大家简单介绍一下web前端框架&#xff1b;随着互联网技术的飞速发展&#xff0c;Web前端技术也在不断地演进和更新。目前&#xff0c;前端比较多的三大主流前端框架Angular、React和Vue.js&#xff0c;成为前端开发者的得…