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

蓝桥杯_拔河_java

 佬们能不能对思路二提供点建议,一直过不了T_T。

 题目

思路

        首先感觉有个坑点,就是可以不用把所有学生都选上,但是一定要保证两个部分学生的编号是连续的。比如一共5个人,编号是{1,2,3,4,5},你可以选{1,2},{5};但是你不能选{1,3},{5},因为{1,3}是不连续的,缺了2。

   总思路:

        这题总思路是一致的,只不过在实现上可以尝试以下两种方式。

        根据那个坑点应该可以想到,我们可以找两个区间,让这两个区间里数据之和的差最小即可。但是我们怎么能够找到这两个区间就是个问题。

        一般涉及到区间求和,基本会和前缀和挂点勾,但是怎么运用前缀和又是个问题。

        这题我最开始就是踩了坑,后来看了大神的代码,归纳出了下边的总思路:

        就是我们可以把所有子区间的和都求出来,然后从小到大排个序,再求相邻数据的差(后一个-前一个),取最小的就可以(因为升序嘛,肯定>=0)。

        下面拿样例举个例子:

                5个学生,力量值分别为10  9  8  12  14,

                我们先从第一个学生10开始求区间和:

                        [10]-->10

                        [10,9]-->19

                        [10,9,8]-->27

                        [10,9,8,12]-->39        

                        [10,9,8,12,14]-->53

                第二个学生9开始:

                        [9]-->9

                        [9,8]-->17

                        [9,8,12]-->29

                        [9,8,12,14]-->43

                同理,剩下三个学生也是这样。

                然后所有子区间的和升序排一下,结果应该是这样的:

                 list = [8 9 10 12 14 17 19 20 26 27 29 34 39 43 53]

                然后你用list[i] - list[i-1]求相邻的两个数据的差,最后取最小的就行。

可能有人会问,如果相邻的两个数,他们原来对应的区间有重合怎么办?

        有重合的话,你做差是不是就相当于把重合的部分减去了,只剩下非公共部分的了。

        比如:

        你看上边那个区间的值是s1+s2,下边的是s3+s4,又因为s2=s3,所以做完差之后,其实就是s4-s1的值,也就是说虽然一开始区间[0,5]和[3,7]有覆盖的部分,但是并不影响最后的结果。

        转化成题意可以这么理解,区间1选了[a,b],区间2选了[c,d](a+b > c+d),假设这个差就是最小的,但是你们老师觉得人有点少,给区间1,2分别找了一个人,对应e,f,恰好的是e,f力量一样。这么看最后他们的力量差还是不变的。我是这么理解的。

        思路一:没有很死板的先求前缀和数组

                就是没有直接求前缀和数组,而是通过两层for循环,直接把所有子区间求出来了。(这么看也不像个思路,感觉和废话一样,哈哈哈)

        思路二:把前缀和数组求了出来,然后求每个子区间的和,但是只过了15%,后续会补T_T

                这个就是把前缀和数组算出来,操作前缀和数组,去求个每个子区间的和。(这种的我还没整出来,对前缀和还是理解不透彻)

代码

注释掉的就是思路二(T_T)

也请大佬们看看思路二写的有什么问题,感谢!!

package 蓝桥;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class 拔河 {public static void main(String[]args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();ArrayList<Long> list = new ArrayList<>();int []a = new int[n + 1];for(int i = 1;i <= n;i ++) {a[i] = sc.nextInt();// 存力量}for(int i = 1;i <= n;i ++) {long sum = a[i];// 落单的,也就是单个数的,也要加到list里面,不排除老师每个队只找一个学生。// 虽然不加这句话也过了题。list.add(sum); for(int j = i+1;j <= n;j ++) {sum += a[j];list.add(sum);}}Collections.sort(list);long min = Long.MAX_VALUE;for(int i = 1;i < list.size();i ++) {min = Math.min(min,(list.get(i) - list.get(i-1)));}System.out.println(min);
//        int[] sum = new int[n+1];
//        sum[0] = 0;
//        for(int i = 1;i <= n;i ++) {
//            sum[i] = sum[i-1] + a[i];
//        }
//        for(int i = 1;i <= n;i ++) {
//            for(int j = i;j <= n;j ++) {
//                list.add(sum[j] - sum[i-1]);
//            }
//        }System.out.println();
//        int min = Integer.MAX_VALUE;
//        for(int i = 1;i < list.size();i ++) {
//            min = Math.min(min,(list.get(i) - list.get(i-1) ));
//        }
//        System.out.println(min);
//        Collections.sort(list);
//        for (Long integer : list) {
//            System.out.print(integer + " ");
//        }}
}

相关文章:

蓝桥杯_拔河_java

佬们能不能对思路二提供点建议&#xff0c;一直过不了T_T。 题目 思路 首先感觉有个坑点&#xff0c;就是可以不用把所有学生都选上&#xff0c;但是一定要保证两个部分学生的编号是连续的。比如一共5个人&#xff0c;编号是{1&#xff0c;2&#xff0c;3&#xff0c;4&#xf…...

fastapi 实践(三)Swagger Docs

fastapi 实践&#xff08;一&#xff09;基础 fastapi 实践&#xff08;二&#xff09;异常捕获 fastapi 实践&#xff08;三&#xff09;Swagger Docs fastapi Swagger 1. FastAPI 交互式 API 文档2. 故障解决2.1. FastAPI 访问 docs 显示空白/加载失败2.2. Swagger 报错&…...

每日一题力扣3248.矩阵中的蛇c++

3248. 矩阵中的蛇 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int finalPositionOfSnake(int n, vector<string>& commands) {int i 0;int j 0;for (int k0;k<commands.size();k) {if (commands[k] "RIGHT")j;else if (comma…...

ReentranLock手写

ReentranLock手写 整体概述 MiniLock 是一个自定义的锁实现&#xff0c;模拟了 Java ReentrantLock 的公平锁机制。公平锁的核心思想是“先来后到”&#xff0c;即线程按照请求锁的顺序依次获取锁&#xff0c;避免线程饥饿。代码使用了以下关键组件&#xff1a; state: 表示…...

Channel-wise Knowledge Distillation for Dense Prediction论文阅读和

paper&#xff1a;https://arxiv.org/pdf/2011.13256.pdf code&#xff1a;https://github.com/open-mmlab/mmrazor 这篇paper主要是商汤开源的mmrazor中提及在detection有效果&#xff0c;我之前记录的几篇sota文章虽然在各自的paper中在detection领域都有提及有增益&#…...

deepSpeed多机多卡训练服务器之间,和服务器内两个GPU是怎么通信

DeepSpeed 在多机多卡训练时,主要依赖 NCCL 和 PyTorch Distributed 进行通信。具体来说,分为服务器之间和服务器内两种情况: 1. 服务器之间的通信(跨节点通信) DeepSpeed 采用 NCCL(NVIDIA Collective Communications Library)作为主要的通信后端,结合 PyTorch Distr…...

Mysql-经典实战案例(10):如何用PT-Archiver完成大表的自动归档

真实痛点&#xff1a;电商订单表存储优化场景 现状分析 某电商平台订单表&#xff08;order_info&#xff09;每月新增500万条记录 主库&#xff1a;高频读写&#xff0c;SSD存储&#xff08;空间告急&#xff09;历史库&#xff1a;HDD存储&#xff0c;只读查询 优化目标 …...

centos 7 搭建FTP本地用户

在 CentOS 7 系统上基于本地用户搭建 FTP 服务&#xff0c;可按以下步骤操作&#xff1a; 1. 安装 vsftpd 服务 vsftpd 是一款常用的 FTP 服务器软件&#xff0c;可借助 yum 来安装&#xff1a; bash yum install -y vsftpd2. 启动并设置开机自启 vsftpd 服务 bash systemct…...

HarmonyOS Next~鸿蒙系统功耗优化体系解析:前台交互与后台任务的全场景节能设计

HarmonyOS Next&#xff5e;鸿蒙系统功耗优化体系解析&#xff1a;前台交互与后台任务的全场景节能设计 鸿蒙操作系统&#xff08;HarmonyOS&#xff09;凭借其分布式架构与全场景协同能力&#xff0c;在功耗优化领域实现了从用户交互到系统底层的多维度创新。本文从前台用户低…...

混元视频与万相2.1全面对比分析

混元视频与万相2.1全面对比分析&#xff08;2025版&#xff09; 一、模型背景与技术定位 混元视频&#xff08;HunYuan Video&#xff09; 由腾讯开源&#xff0c;定位为“影视级AI视频生成工具”。核心能力集中在图生视频领域。模型架构基于13B参数规模&#xff0c;强调导演级…...

正则表达式:文本处理的瑞士军刀

正则表达式&#xff1a;文本处理的瑞士军刀 正则表达式&#xff08;Regular Expression&#xff0c;简称 Regex&#xff09;是一种用于匹配、查找和操作文本的强大工具。它通过定义一种特殊的字符串模式&#xff0c;可以快速地在文本中搜索、替换或提取符合特定规则的内容。正…...

【负载均衡系列】HAProxy

HAProxy(High Availability Proxy)是一款高性能的 ​TCP/HTTP 负载均衡器,专注于提供高可用性、灵活性和可靠性。以下是关于HAProxy的详细解析,涵盖其工作原理、工作机制、工作模式等核心方面: 一、HAProxy 工作原理 HAProxy的核心职责是将客户端请求高效、可靠地分发到后…...

设计模式之责任链模式:原理、实现与应用

引言 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许多个对象有机会处理请求&#xff0c;从而避免请求的发送者与接收者之间的耦合。责任链模式通过将多个处理对象连接成一条链&#xff0c;使得请求沿着链传递&am…...

20250318在ubuntu20.04中安装向日葵

rootrootrootroot-X99-Turbo:~$ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb rootrootrootroot-X99-Turbo:~$ sudo apt-get install -f rootrootrootroot-X99-Turbo:~$ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 20250318在ubuntu20.04中安装向日葵 2025/3…...

Kotlin的 noinline和crossinline关键字

noinline 顾名思义&#xff0c;noinline的意思就是不内联&#xff0c;这个关键字只能作用于内联高阶函数的某个函数类型的参数上&#xff0c;表明当前的函数参数不参与高阶函数的内联&#xff1a; inline fun fun1(doSomething1: () -> Unit, noinline doSomething2: () -&…...

区块链交易签名相关知识总结

基础概念 签名流程 安全相关问题 实际场景 代码示例 进阶问题 一、基础概念 1. 为什么区块链交易需要签名&#xff1f; 答案&#xff1a; 身份认证&#xff1a;证明交易由私钥持有者发起。 数据完整性&#xff1a;确保交易内容未被篡改。 抗抵赖性&#xff1a;签名者无…...

Spring Boot集成Redis并设置密码后报错: NOAUTH Authentication required

报错信息&#xff1a; io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.Redis密码配置确认无误&#xff0c;但是只要使用Redis存储就报这个异常。很可能是因为配置的spring.redis.password没有被读取到。 基本依赖&#xff1a; implementat…...

如何记录Matlab程序运行过程中所占用的最大内存(续)

在上一篇博客中&#xff0c;我们讨论了如何记录Matlab程序运行过程中所占用的最大内存。 博客原文&#xff1a;如何记录Matlab程序运行过程中所占用的最大内存-CSDN博客 但经过测试发现&#xff0c;这与实际有非常大的差异。运行如下例子&#xff1a; clear;clc; profile on…...

分布式节点池:群联云防护抗DDoS的核心武器

一、节点池的核心作用与架构设计 1. 全球分布式节点布局 物理层防御&#xff1a; 根据产品文档&#xff0c;群联在全球部署“海量分布式节点”&#xff0c;每个节点具备独立清洗能力&#xff0c;攻击流量被分散至不同区域节点处理。优势&#xff1a;避免传统单节点防护的瓶颈&…...

Java线程池深度解析:从使用到调优

适合人群&#xff1a;Java中级开发者 | 并发编程入门者 | 系统调优实践者 目录 一、引言&#xff1a;为什么线程池是Java并发的核心&#xff1f; 二、线程池核心知识点详解 1. 线程池核心参数与原理 2. 线程池的创建与使用 (1) 基础用法示例 (2) 内置线程池的隐患 3. 线…...

自动驾驶背后的数学:多模态传感器融合的简单建模

上一篇博客自动驾驶背后的数学:特征提取中的线性变换与非线性激活 以单个传感器为例,讲解了特征提取中的线性变换与非线性激活。 这一篇将以多模态传感器融合为例,讲解稍复杂的线性变换和非线性激活应用场景。 (一)权重矩阵的张量积分解 y = W x + b = [ w 11 ⋯ w 1 n ⋮…...

12 File文件对象:创建、获取基本信息、遍历文件夹、查找文件;字符集的编解码 (黑马Java视频笔记)

文章目录 File >> 存储数据的方案1. 认识File2. File操作2.1 创建File对象2.2 File操作1&#xff09;对文件对象的信息的操作2&#xff09;文件/文件夹的创建/删除3&#xff09;⭐⭐对文件夹的遍历 3. 方法递归3.1 认识递归3.2 递归算法及其执行流程1) 案例&#xff1a;2…...

HTML应用指南:利用GET请求获取猫眼电影日票房信息——以哪吒2为例

2025年春节档期&#xff0c;国产动画电影《哪吒之魔童闹海》&#xff08;以下简称《哪吒2》&#xff09;以颠覆性的叙事风格与工业化制作水准震撼登场&#xff0c;不仅刷新了中国动画电影的票房纪录&#xff0c;更成为全球影史现象级作品。影片凭借春节档期的爆发式开局、持续5…...

荣耀手机卸载应用商店、快应用中心等系统自带的

1.下载abd ADB Download - Get the latest version of ADB and fastboot 2.手机打开开发者选项 3.手机接电脑打开USB调试 4.下载MT管理器查看系统包名 D:\1.LFD\ADB\platform-tools-latest-windows\platform-tools>adb shell adb.exe: no devices/emulators found 这边是…...

[AI速读]用持续集成(CI)优化芯片验证环境:Jenkins与EDA工具的实战指南

在芯片验证中,回归测试(Regression Test)是确保设计稳定性的关键步骤。但随着设计复杂度增加,手动管理海量测试用例、分析日志和覆盖率数据变得异常耗时。本文将介绍如何利用持续集成(CI)工具Jenkins,结合EDA验证环境(如Cadence vManager),实现自动化测试与结果分析,…...

苍穹外卖学习笔记

整体概述 1).用户层 本项目中在构建系统管理后台的前端页面&#xff0c;我们会用到H5、Vue.js、ElementUI、apache echarts(展示图表)等技术。而在构建移动端应用时&#xff0c;我们会使用到微信小程序 2).网关层 Nginx是一个服务器&#xff0c;主要用来作为Http服务器&…...

Spring常用注解汇总

1. IOC容器与Bean管理 注解说明示例Component通用注解&#xff0c;标记类为Spring Bean Component public class MyService { ... } Controller标记Web控制器&#xff08;应用在MVC的控制层&#xff09; Controller public class UserController { ... } Service标记业务逻辑层…...

深度强化学习中的深度神经网络优化策略:挑战与解决方案

I. 引言 深度强化学习&#xff08;Deep Reinforcement Learning&#xff0c;DRL&#xff09;结合了强化学习&#xff08;Reinforcement Learning&#xff0c;RL&#xff09;和深度学习&#xff08;Deep Learning&#xff09;的优点&#xff0c;使得智能体能够在复杂的环境中学…...

每日一题力扣2974.最小数字游戏c++

2974. 最小数字游戏 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> numberGame(vector<int>& nums) {vector<int> arr(nums.size());sort(nums.begin(),nums.end());for(size_t i0;i<nums.size();i2){arr[i]nums[i1]…...

软考中级-软件设计师 准备

软考中级-软件设计师 准备 一、软考相关1.1、考试时间1.2、考试时长1.3、题型和分值&#xff1a; 二、软考备考2.1、相关书籍2.2、推荐课程&#xff1a;B站up主zst_20012.3、学习路线 一、软考相关 1.1、考试时间 一年有两次软考&#xff0c;一般是五月末和十一月的中旬 以下…...