能力组队 | 求最多可以派出多少支团队(C 语言)

题目

用数组代表每个人的能力,一个比赛活动要求,参赛团队的最低能力值为N,每个团队可以由一人或者两人组成,且一个人只能参加一个团队,计算出最多可以派出多少只符合要求的队伍。

输入

第一行代表总人数,范围1 ~ 500000
第二行数组代表每个人的能力
数组大小范围1 ~ 500000
元素取值范围1 ~ 500000
第三行数值为团队要求的最低能力值1 ~ 500000

输出

最多可以派出的团队数量

示例一

输入

5
3 1 5 7 9
8

输出

3

说明

35组成一队
17一队
9自己一队
输出3

示例二

输入

7
3 1 5 7 9 2 6
8

输出

4

思路

解题思路:

  1. 读取数据

    • 首先,从输入中读取总人数 count
    • 然后,用数组 capacity[] 存储每个人的能力值。
    • 接着,读取团队要求的最低能力值 n
  2. 排序能力值数组

    • 使用 qsort() 函数对 capacity[] 数组进行升序排序。这样可以确保在后续计算过程中,较小的能力值会优先考虑与其他元素组成队伍。
  3. 统计一人组队的数量

    • 初始化符合要求的团队数量 num 为0。
    • 遍历排序后的 capacity[] 数组,如果某个人的能力值大于等于 n,则说明他/她可以独立组成一支队伍,将 num 加一。
  4. 寻找两人组队的情况

    • 使用双指针法,初始化左指针 i 为0,右指针 j 为数组最后一个可能与 i 组队的人的位置(即 count - num - 1)。
    • i < j 时,在每轮循环中判断 capacity[i]capacity[j] 的和是否大于等于 n,若是,则表示这两个人可以组成一个满足要求的团队,将 num 加一,并移动左右指针;若不是,则只移动左指针 i
  5. 输出结果

    • 循环结束后,num 即为最多可以派出的符合要求的团队数量,将其输出。

代码

#include <stdio.h>
#include <stdlib.h>// 自定义比较函数,用于对数组进行排序
int cmp(const void *a, const void *b) {// 返回 a 元素减去 b 元素的差值,实现升序排序return *(int *)a - *(int *)b;
}int main() {int count;// 读取总人数scanf("%d", &count);// 定义一个整数数组存储每个人的能力值int capacity[count];for (int i = 0; i < count; i++) {// 逐个读取并存储每个人的能力值scanf("%d", &capacity[i]);}int n;// 读取团队要求的最低能力值scanf("%d", &n);// 对能力值数组进行升序排序qsort(capacity, count, sizeof(int), cmp);// 初始化符合要求的团队数量为一人组队的数量int num = 0;for (int i = 0; i < count; i++) {// 遍历数组,统计能力值大于等于最低要求的人数if (capacity[i] >= n) {num++;}}// 双指针法寻找可两人组队的情况int i = 0;int j = count - num - 1; // j 指向可能与 i 组队的最右侧元素while (i < j) {// 如果两人能力之和满足条件,则可以组成一队if (capacity[i] + capacity[j] >= n) {num++; // 符合条件队伍数量加一i++; // 移动左指针j--; // 移动右指针} else {i++; // 若两人能力之和不满足条件,则只移动左指针}}// 输出最多可以派出的团队数量printf("%d", num);return 0;
}

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

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

相关文章

React学习——快速上手

文章目录 初步模块思维 初步 https://php.cn/faq/400956.html 1、可以手动使用npm来安装各种插件&#xff0c;来从头到尾自己搭建环境。 如&#xff1a; npm install react react-dom --save npm install babel babel-loader babel-core babel-preset-es2015 babel-preset-rea…

SQL语法法则

概念 SQL语法规则&#xff1a;SQL是一种结构化编程语言 基础SQL指令通常是以行为单位 SQL指令需要语句结束待&#xff0c;默认是英文分号:;、\g、\G SQL指令类似自然语言 编写的SQL中如果用到了关键字或者保留字&#xff0c;需要使用反引号、来包裹&#xff0c;让系统忽略 …

3.测试教程 - 基础篇

文章目录 软件测试的生命周期软件测试&软件开发生命周期如何描述一个bug如何定义bug的级别bug的生命周期如何开始第一次测试测试的执行和BUG管理产生争执怎么办&#xff08;处理人际关系&#xff09; 大家好&#xff0c;我是晓星航。今天为大家带来的是 测试基础 相关的讲解…

防火墙内容安全笔记

目录 DFI和DPI IDS和IPS 签名 AV URL过滤 HTTPS过滤 内容过滤 文件类型过滤 文件内容过滤 邮件过滤 VPN概述 密码学概述 对称加密 非对称加密 DFI和DPI DFI和DPI技术 --- 深度检测技术 DPI DPI --- 深度包检测技术 --- 主要针对完整的数据包&#xff08;数据包…

【7】测试数据的读写(ARM服务器)

上一章节简单说了下测试项的编写,这一节,我们深入说一下如何编写测试项程序以及测试数据的读写,接下来一起来看一下。 一.环境配置 1.python 3.7.8 可直接进入官网下载安装:Download Python | Python.org 我们还是使用python来进行测试项程序的开发。 2.所需要的库如下…

【springBoot】springAOP

AOP的概述 AOP是面向切面编程。切面就是指某一类特定的问题&#xff0c;所以AOP也可以理解为面向特定方法编程。AOP是一种思想&#xff0c;拦截器&#xff0c;统一数据返回和统一异常处理是AOP思想的一种实现。简单来说&#xff1a;AOP是一种思想&#xff0c;对某一类事务的集…

目标追踪(tracking)简介之核心组成部分及其挑战

目标追踪&#xff08;tracking&#xff09;在技术领域通常指的是使用各种传感器和算法来监测和定位物体在空间中的位置和运动。这一过程广泛应用于多个领域&#xff0c;包括视频监控、机器人导航、自动驾驶汽车、无人机飞行控制、体育分析、以及增强现实和虚拟现实系统中。 目…

Camtasia2024官方标准版重磅发布更新及新版本功能介绍

Camtasia 2024标准版是一款功能强大的屏幕录制和视频编辑软件。它继承了Camtasia系列一贯的易用性和丰富功能&#xff0c;为用户提供了高效、专业的视频制作体验。 在屏幕录制方面&#xff0c;Camtasia 2024标准版支持录制电脑屏幕上的任何内容&#xff0c;包括网站、软件、视…

9、内网安全-横向移动Exchange服务有账户CVE漏洞无账户口令爆破

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 背景&#xff1a; 在内网环境的主机中&#xff0c;大部分部署有Exchange邮件服务&#xff0c;对于Exchange服务的漏洞也是频出&#xff0c;在这种情况下&#xff0c;如果拿到内网中一台主机…

harbor(docker仓库)仓库部署 - 高可用

harbor&#xff08;docker仓库&#xff09;仓库部署 - 高可用 1. harbor高可用1.1 方案说明1. 双主复制2. 多harbor实例共享后端存储 1.2 部署高可用&#xff08;多harbor实例共享后端存储&#xff09;1. 服务器划分2. 安装harbor&#xff08;先部署一套Harbor&#xff0c;用于…

PostgreSQL与MySQL,谁更胜一筹

前言 PostgreSQL与MySQL都是优秀的开源数据库。在日常学习中&#xff0c;新手可能接触最多的是MySql,但是实际工作中&#xff0c;两者的应用场景其实都很广。我之前的做过上网流量销售业务&#xff0c;用的是MySQL,现在接触广告业务&#xff0c;用的是pg数据库&#xff0c;每天…

深入理解 v-for 中 key 的重要性

查看本专栏目录 关于作者 还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#x…

【k8s核心概念与专业术语】

k8s架构 1、服务的分类 服务分类按如下图根据数据服务支撑&#xff0c;分为无状态和有状态 无状态引用如下所示&#xff0c;如果一个nginx服务&#xff0c;删除后重新部署有可以访问&#xff0c;这个属于无状态&#xff0c;不涉及到数据存储。 有状态服务&#xff0c;如redis&a…

RF 框架实现企业级 UI 自动化测试

RobotFramework 框架可以作为公司要做自动化 但是又不会代码的一种临时和紧急情况的替代方案&#xff0c;上手简单。 前言 现在大家去找工作&#xff0c;反馈回来的基本上自动化测试都是刚需&#xff01;没有自动化测试技能&#xff0c;纯手工测试基本没有什么市场。 但是很多…

Java导出pdf格式文件

Java实现导出pdf &#xff5c;word &#xff5c;ppt 格式文件 controller层&#xff1a; ApiOperation("导出")GetMapping("/download")public void download(RequestParam("userId") Long userId ,HttpServletResponse response) {reportResul…

探究全链路压力测试的含义与重要性

全链路压力测试是指对整个应用系统的各个环节或组件进行压力测试&#xff0c;以模拟实际生产环境中的用户负载和流量&#xff0c;评估系统在高负载条件下的性能表现。 1. 全链路压力测试的含义 全链路压力测试涉及系统的所有组件和环节&#xff0c;包括前端用户界面、应用服务器…

爬虫基本库的使用(httpx库的详细解析)

前面&#xff0c;已经介绍过了urllib库和requests库&#xff08; 爬虫基本库的使用(urllib库的详细解析)-CSDN博客爬虫基本库的使用(requests库的详细解析)-CSDN博客&#xff09;&#xff0c;已经可以爬取大多数网站的数据。但对于某些网站依然无能为力 &#xff0c;因为这些网…

初始Nginx(基本概念)

目录 一、Nginx的概念 二、Nginx常用功能 1、HTTP(正向)代理&#xff0c;反向代理 1.1正向代理 1.2 反向代理 2、负载均衡 2.1 轮询法&#xff08;默认方法&#xff09; 2.2 weight权重模式&#xff08;加权轮询&#xff09; 2.3 ip_hash 3、web缓存 三、基础特性 四…

(3)llvm ir转换过程

&#xff08;1&#xff09;DAG Lowering 输入的IR转换成SelectionDAG的过程被称作lowering 就是把llvm ir转成这种 &#xff08;2&#xff09;DAG legalization "DAG legalization"&#xff08;有向无环图合法化&#xff09;是编译器后端&#xff0c;特别是在LLVM中…

Java架构师之路三、网络通信:TCP/IP协议、HTTP协议、RESTful API、WebSocket、RPC等。

目录 TCP/IP协议&#xff1a; HTTP协议&#xff1a; RESTful API&#xff1a; WebSocket&#xff1a; RPC&#xff1a; UDP&#xff1a; HTTPS&#xff1a; 上篇&#xff1a;Java架构师之路二、数据库&#xff1a;SQL语言、关系型数据库、非关系型数据库、数据一致性、事…