48天强训 & Day1 & JavaOj

简介: 48天强训 & Day1 & JavaOj

48天强训 & Day1 & JavaOj

1. 编程题1 - 组队竞赛

组队竞赛_牛客笔试题_牛客网 (nowcoder.com)

6ef45771bba443b9a679a6a017c746e0.png



1.1 读题

fe1801714eb64398b355f9d91e30dd12.png

1.2 算法思想基础

我们应该尽量的让每一个队伍的中间值都最大化~

我们应该尽量的让每一个队伍的最小值都足够小~

前33%的不应该都作为每个队伍的最大值~

接下来我将讲解每个位置应该如何选组员~

但是这里我要说一个前提

首先,我们需要把所有人进行一个排序~

分为前三分之一,中三分之一,后三分之一

后三分之一为整体水平排名靠后的~

1.2.1 后三分之一

我们要想让一个队伍的最小值足够小

那么我们可以让那么就选整体水平的后三分之一

事实也是如此~

证明:(反证法)

首先:

6382e2247af34b1792e2bf4e328451bf.png


其次:


e72281ca3416470e825dc2067f77387c.png

得出结论:


4836b25a5d3643eea9a0bd52d6651f8f.png

也就是说,为了让组队水平最大化,我们应该让每个队伍的最小值,要在整体的后三分之一里去选~

并且这么选都可以,因为最大值和中间值都会比最小值大,并且队伍的水平不受最小值影响~

1.2.2 前三分之二

我们确定了每个队伍的最小值后,紧接着就要确定一个一个的队伍了~

切记,并不能让前三分之一的人都作为每个队伍的最大值,这样非常影响总体水平~

原理跟刚才差不多,可以用反证法证明~


09298b647f644c27bde8938f684ab630.png

其实这样排是有可能做对的

但是,肯定是有漏洞的~

e58f8bee76a6403abb231d754fb25438.png


而正确的思想是,一个一个队伍的去确定,每次确定都让这个队伍水平最大化~


69002750eb3041d9ad880434de318748.png

对于第二个队伍

2658025fdb184f208a6ea2814454a4b7.png


以此类推~

dc88d8f3ca094bd984e7dadc3e68eef4.png

所以,最大水平组队方式就是这样的

水平总和最大值为:

假设有n个队伍

所有人从大到小排为 a3n

水平总和值为Sn

则Snmax = a2 + a4 + a6 + ······ + a2n

1.3 代码设计

n为队伍的个数

那么我们只需要知道前2n名

topK问题

用优先级队列 - 堆

前k大,用小根堆

每次去梢(poll),就是去掉最小值

这里就相当于去掉a2n、a2n-1 ······

按照上面的算法,我们可以从a2n + a2n-2 + ······ + a4 + a2

即从后往前加

当然也可以直接用各种排序方式去排序,然后按照下标依次相加~

public class Main {
    public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      while(scanner.hasNextInt()) {
          int number = scanner.nextInt();
          PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
          for (int i = 0; i < number * 3; i++) {
              int value = scanner.nextInt();
              if(i < 2 * number) {
                  priorityQueue.offer(value);
              }else {
                  if(value > priorityQueue.peek()) {
                      priorityQueue.poll();
                      priorityQueue.offer(value);
                  }
              }
          }
          long result = 0;
          for (int i = 0; i < number; i++) {
              result += priorityQueue.poll();
              priorityQueue.poll();
          }
            System.out.println(result);
        }
  }
}


解析:

019ea93410024c01a86ee5cdf55aeef3.png


1. 3. 测试

1b512fb2c4f944ca8df98ac1526042ee.png

目录
相关文章
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
140824 18
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
仅用3分钟,百炼调用满血版Deepseek-r1 API,享受百万免费Token。阿里云提供零门槛、快速部署的解决方案,支持云控制台和Cloud Shell两种方式,操作简便。Deepseek-r1满血版在推理能力上表现出色,尤其擅长数学、代码和自然语言处理任务,使用过程中无卡顿,体验丝滑。结合Chatbox工具,用户可轻松掌控模型,提升工作效率。阿里云大模型服务平台百炼不仅速度快,还确保数据安全,值得信赖。
357778 59
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
基于阿里百炼的DeepSeek-R1满血版模型调用【零门槛保姆级2084小游戏开发实战】
本文介绍基于阿里百炼的DeepSeek-R1满血版模型调用,提供零门槛保姆级2048小游戏开发实战。文章分为三部分:定位与核心优势、实战部署操作指南、辅助实战开发。通过详细步骤和案例展示,帮助开发者高效利用DeepSeek-R1的强大推理能力,优化游戏逻辑与视觉效果,解决官网响应延迟问题,提升开发效率和用户体验。适合企业开发者、教育行业及多模态探索者使用。
62316 15
基于阿里百炼的DeepSeek-R1满血版模型调用【零门槛保姆级2084小游戏开发实战】
Manus:或将成为AI Agent领域的标杆
随着人工智能技术的飞速发展,AI Agent(智能体)作为人工智能领域的重要分支,正逐渐从概念走向现实,并在各行各业展现出巨大的应用潜力。在众多AI Agent产品中,Manus以其独特的技术优势和市场表现,有望成为该领域的标杆。作为资深AI工程师,本文将深入探讨Manus的背景知识、主要业务场景、底层原理、功能的优缺点,并尝试使用Java搭建一个属于自己的Manus助手,以期为AI Agent技术的发展和应用提供参考。
10032 8
快速使用 DeepSeek-R1 满血版
DeepSeek是一款基于Transformer架构的先进大语言模型,以其强大的自然语言处理能力和高效的推理速度著称。近年来,DeepSeek不断迭代,从DeepSeek-V2到参数达6710亿的DeepSeek-V3,再到性能比肩GPT-4的DeepSeek-R1,每次都带来重大技术突破。其开源策略降低了AI应用门槛,推动了AI普惠化。通过阿里云百炼调用满血版API,用户可以快速部署DeepSeek,享受高效、低成本的云端服务,最快10分钟完成部署,且提供免费token,极大简化了开发流程。
63126 19
快速使用 DeepSeek-R1 满血版
阿里云百炼已上线超强推理开源模型QwQ-32B,尺寸更小,性能比肩DeepSeek满血版
通义千问团队推出了320亿参数的QwQ-32B模型,通过大规模强化学习和多阶段训练,在数学、编程及通用能力上达到或超越了DeepSeek-R1等先进模型。QwQ-32B模型已在阿里云百炼上线,支持API调用,用户可通过官方文档了解详细使用方法。未来,团队将继续探索智能体与RL集成,推动人工通用智能的发展。
快来零门槛、即刻拥有 DeepSeek-R1 满血版
随着人工智能技术的发展,DeepSeek作为一款新兴推理模型,凭借强大的技术实力和广泛的应用场景崭露头角。本文基于阿里云提供的零门槛解决方案,评测DeepSeek的部署与使用。该方案支持多模态任务,涵盖文本生成、代码补全等,融合NLP、IR和ML技术,提供快速实现AI应用的便利。用户无需编码,最快5分钟、最低0元即可部署DeepSeek模型。阿里云还提供100万免费Token,适合预算有限的个人或小型团队试用。通过Chatbox客户端配置API,用户可轻松体验智能交互功能,如数学提问和代码书写等。
30147 5
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
本文介绍了通义灵码2.0 AI程序员在嵌入式开发中的实战应用。通过安装VS Code插件并登录阿里云账号,用户可切换至DeepSeek V3模型,利用其强大的代码生成能力。实战案例中,AI程序员根据自然语言描述快速生成了C语言的base64编解码算法,包括源代码、头文件、测试代码和CMake编译脚本。即使在编译错误和需求迭代的情况下,AI程序员也能迅速分析问题并修复代码,最终成功实现功能。作者认为,通义灵码2.0显著提升了开发效率,打破了编程语言限制,是AI编程从辅助工具向工程级协同开发转变的重要标志,值得开发者广泛使用。
7875 68
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
用DeepSeek,就在阿里云!四种方式助您快速使用 DeepSeek-R1 满血版!更有内部实战指导!
DeepSeek自发布以来,凭借卓越的技术性能和开源策略迅速吸引了全球关注。DeepSeek-R1作为系列中的佼佼者,在多个基准测试中超越现有顶尖模型,展现了强大的推理能力。然而,由于其爆火及受到黑客攻击,官网使用受限,影响用户体验。为解决这一问题,阿里云提供了多种解决方案。
37158 44
零门槛、百万token免费用,即刻拥有DeepSeek-R1满血版,还有实践落地调用场景等你来看
DeepSeek 是热门的推理模型,能在少量标注数据下显著提升推理能力,尤其擅长数学、代码和自然语言等复杂任务。本文涵盖四种部署方案,可以让你快速体验云上调用 DeepSeek-R1 满血版的 API 及部署各尺寸模型的方式,无需编码,最快 5 分钟、最低 0 元即可实现
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等