游戏分组/王者荣耀

题目描述

部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分 5 为两队,每队 5 人。
每位参与者都有一个评分,代表着他的游戏水平。
为了表演赛尽可能精彩,我们需要把 10 名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队 5 名队员的评分总和。
现在给你 10 名参与者的游戏水平评分,请你根据上述要求分队最后输出这两组的实力差绝对值。
例: 10 名参赛者的评分分别为 5 1 8 3 4 6 7 10 9 2,分组为 (1 3 5 8 10) (2 4 6 7 9),两组实力差最小,差值为 1。有多种分法,但实力差的绝对值最小为 1。

输入描述

10 个整数,表示 10 名参与者的游戏水平评分。范围在[1,10000]之间

输出描述

1 个整数,表示分组后两组实力差绝对值的最小值。

示例一

输入

1 2 3 4 5 6 7 8 9 10

输出

1

说明

10 名队员分成两组,两组实力差绝对值最小为 1。

代码

#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
int total = 0;
int res = INT_MAX;
// 深度优先搜索函数
void dfs(int score[10], int idx, int count, int currentSum) {// 当我们为一个队伍选择了5名玩家时if (count == 5) {// 计算另一个队伍的总和int otherTeamSum = total - currentSum;// 用较小的差值更新结果res = abs(currentSum - otherTeamSum) < res? abs(currentSum - otherTeamSum): res;return;}// 如果我们已经考虑了所有玩家,停止递归if (idx == 10) {return;}// 为第一个队伍选择当前玩家dfs(score, idx + 1, count + 1, currentSum + score[idx]);// 不为第一个队伍选择当前玩家dfs(score, idx + 1, count, currentSum);
}
int main() {int score[10];for (int i = 0; i < 10; i++) {scanf("%d", &score[i]);total += score[i];}dfs(score, 0, 0, 0);printf("%d", res);return 0;
}

注意: <limits.h>

<limits.h> 是 C 语言的一个标准库头文件,它定义了各种数据类型(如整数、浮点数等)的最小和最大可能值。在程序中包含 <limits.h> 头文件后,可以使用预定义的宏来访问这些值。

例如,在给定的代码片段中,INT_MAX 就是来自 <limits.h> 的一个预定义宏,表示 int 类型的最大值。这个宏在初始化变量 res 时被用作初始的最大可能实力差:

int res = INT_MAX;

通过这样的方式,我们可以确保 res 被初始化为一个足够大的数值,以便在后续计算中能够容纳任何可能出现的实力差,并能够在遍历所有分组方案后更新到真正的最小实力差。

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

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

相关文章

C语言 判断当前存储大小端问题

1.代码1 #include<stdio.h>int check_sys(){int a1;return *(char*)&a;//将int*强制转换为char* 判断一个字节的内容就知道当前存储模式 } int main(){if(1check_sys())printf("小端");elseprintf("大端");return 0; }2.代码2 使用联合体判断大…

优先队列的用法

介绍 英文名-priority_queue队首元素为当前优先级最高的 访问 只能通过top()函数来访问队首元素 #include <iostream> #include <queue>//调用queue头文件 using namespace std; int main(){priority_queue<int> pq1;//定义&#xff1a;默认数字越大优先…

基于java的眼镜店仓库管理系统

源码获取&#xff0c;加V&#xff1a;qq2056908377 摘要&#xff1a; 随着电子商务的兴起&#xff0c;越来越多的商家选择在线销售他们的产品。眼镜店作为零售业的一种&#xff0c;也不例外。随着市场需求的不断增加&#xff0c;眼镜店需要更加高效的管理他们的仓库和库存&…

Mysql 权限与安全管理

0 引言 MySQL是一个多用户数据库&#xff0c;具有功能强大的访问控制系统&#xff0c;可以为不同用户指定允许的权限。MySQL用户可以分为普通用户和root用户。root用户是超级管理员&#xff0c;拥有所有权限&#xff0c;包括创建用户、删除用户和修改用户的密码等管理权限&…

LeetCode21.合并两个有序链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 &#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 思路 创建一个新的链表头节点&#xff08;dummyNode&#xff09;和一个…

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?<= , (?= , (?<! , (?!

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?< , (? , (?<! , (?! 有好多种称呼 (?< , (? , (?<! , (?! 有好多种称呼 , 我称为: 左限定, 右限定, 左否定, 右否定 (?<左限定)    (?右限定)(?<!左否定)    (?!右限定) 再…

通俗易懂,Spring Bean生命周期管理的理解

目录 1、实例化阶段 2、初始化阶段 3、销毁阶段 总结 在Spring框架中&#xff0c;Bean是最基本的组件&#xff0c;它是Spring框架中的一个Java对象。 下面通过Bean来理解bean的生命周期&#xff1a; Bean(initMethod "customInit", destroyMethod "cust…

阿里云个人建站笔记

导航 一、购买ECS服务器二、配置mysql&#xff08;一&#xff09;安装Mysql步骤一&#xff1a;安装mysql步骤二&#xff1a;配置MySQL步骤三&#xff1a;远程访问MySQL数据库 &#xff08;二&#xff09;给实例配置安全组策略&#xff08;三&#xff09;设置防火墙 一、购买ECS…

.ma1x0勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

尊敬的读者&#xff1a; 数据安全问题备受关注。而勒索病毒是其中一种最为恶劣的威胁之一。其中&#xff0c;.ma1x0勒索病毒备受人们担忧&#xff0c;因其可将用户的数据文件加密&#xff0c;并要求支付赎金以解密文件。本文将介绍.ma1x0勒索病毒的特征、预防方法以及如何恢复…

C# 使用Newtonsoft.Json来读取JOSN数组

怎么在C#工程中安装Newtonsoft在这里就不提了&#xff0c;随便搜一下就有教程反正也是用NuGet包管理器安装。这里记录一下怎么读取JSON节点。 假如有如下JSON&#xff1a; { "春哥": "纯爷们", "data": { "chun": 5…

transformer-Attention is All You Need(二)

transformer中的解码器 解码器层 每个解码器层根据给定的输入向目标方向进行特征提取&#xff0c;即完成解码过程 transformer的解码器也是一个自回归模型&#xff0c;根据编码器的结果以及上一次预测的结果&#xff0c;对下一次可能出现的值进行特征表示。它也是由N层完全相同…

循环队列|超详细|数据结构学习讲解与笔记

队列元素先进先出队列只允许在线性表的一端进行操作&#xff0c;是一种操作受限的线性表 队列的基本操作 InItQueue(&Q)初始化队列&#xff0c;构造一个空队列 QEmptyQueue(Q)队列判空FullQueue(Q)队列判满EnQueue(&Q , x)入队操作DeQueue(&Q , &x)出队操作G…

Kafka的介绍

文章目录 一、介绍二、消息队列通信的模式三、特性四、使用场景五、核心概念 一、介绍 kafka是一个分布式的发布订阅消息系统基于Zookeeper协调最初由Linkedin公司开发&#xff0c;于2010年贡献给了Apache基金会并成为顶级开源项目Kafka的核心是由Scala语言编写&#xff0c;Ka…

SpringBoot中导出excel文件

依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency> 代码实现细节 package com.lyh.mp.utils;import com.lyh.mp.entity.User; import org.apache.poi…

OpenAI新爆款Sora,大佬们怎么看?

OpenAI新爆款Sora的热度持续发酵&#xff0c;在科技圈的刷屏阵仗都快赶上正月初五迎财神了。 智东西2月17日报道&#xff0c;这两天&#xff0c;OpenAI首款文生视频大模型Sora以黑马之姿占据AI领域话题中心&#xff0c;马斯克、杨立昆、贾扬清、Jim Fan、谢赛宁、周鸿祎、李志…

【动态规划专栏】专题一:斐波那契数列模型--------2.三步问题

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

Spring Cloud Zuul:API 网关

1. 理解 API 网关 API网关在现代微服务架构中扮演着至关重要的角色。它充当着服务的入口&#xff0c;负责处理外部请求、路由流量、安全认证、监控日志等功能。本节将深入探讨API网关的定义、作用及其在Spring Cloud中的具体实现Spring Cloud Zuul。 1.1 什么是 API 网关 AP…

数据结构-最短路径(Dijkstra算法与Floyd算法)

介绍 对于网图来说&#xff0c;最短路径是指两顶点之间经过的边上权值之和最少的路径&#xff0c;其路径上第一个点记为源点&#xff0c;最后一个为终点。 计算最短路径有两个经典算法&#xff0c;即迪杰斯特拉&#xff08;Dijkstra&#xff09;算法与弗洛伊德&#xff08;Fl…

Class<T> clazz是什么意思

在Java中&#xff0c;Class 是一个泛型类型&#xff0c;它代表一个类对象。T 是一个类型参数&#xff0c;表示这个类对象所代表的具体的类类型。Class 是Java中所有类型元信息的类&#xff0c;包括基本类型、数组、类类型、接口、枚举和注解类型等。 Class 中的 T 允许你指定这…

unity学习(20)——客户端与服务器合力完成注册功能(2)调试注册逻辑

接着上一节的问题&#xff0c;想办法升级成具备数据库功能的服务器&#xff0c;这个是必须的。 至少在初始化要学会把文件转换为session&#xff0c;新知识&#xff0c;有挑战的。 现在是从LoginHandler.cs跳到了AccountBiz.cs的create&#xff0c;跳度还是很大的。 create函…