编程题]组队竞赛(Java实现)
创始人
2025-05-31 16:57:38
0

🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!

人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习!

欢迎志同道合的朋友一起加油喔🦾🦾🦾
目标梦想:进大厂,立志成为一个牛掰的Java程序猿,虽然现在还是一个🐒嘿嘿
谢谢你这么帅气美丽还给我点赞!比个心


链接:组队竞赛__牛客网
来源:牛客网

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
例如:
一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2
为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。
如样例所示:
如果牛牛把6个队员划分到两个队伍
如果方案为:
team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.
而如果方案为:
team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.
没有比总和为10更大的方案,所以输出10.

输入描述:

输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)第二行包括3*n个整数a_i(1 ≤ a_i ≤ 10^9),表示每个参赛选手的水平值.

输出描述:

输出一个整数表示所有队伍的水平值总和最大值.

示例1

输入:

2
5 2 8 5 1 5

输出:

10

解题思路:

其实这题大家没有必要想的那么复杂,一共n组队伍,每组队伍3个人,我们要找的就是每组队伍中排名第二高的数,既然如此那么n组队伍中n个最小的值我们必然不会选到,可以直接剔除.

剔除掉n个最小的值那么问题就简单了,那么这个剩下的这组数据是不是一半是中间值一半是最高值了!

其实说到这里我都感觉我在说废话,主要怕大家读不懂题意

每个队伍里只有三个人,最差的我们不会选,最高的我们也不会选,剔除n个最小值之后找中间值,我们有两种做法,一种是从前往后找,一种是从后往前找!

从前往后找:首先将数组排好序,注意下标是从0开始,剔除前面n个数(也就是下标0~n的位置),那么第n个位置就是我们要找第一个中间,后面依次加2找下一个中间值,依次累加求和.

从后往前找:首先将数组排好序,此时我们从length-2的位置开始(length-1是最后一个下标的位置),那么lengh-2就是我们要找的第一个中间值的位置,后面依次-2找下一个中间值,依次累加求和,到下标n的位置停止(i>=n).

为什么我们这里要+2或者-2呢?

因为剔除完n个最小的值以后,中间值和最高值就对半分了!

下面自己画的草图帮助你大家更好的理解(此处是从后往前举例)

代码实现 :

import java.util.*;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNextInt()) {int n = in.nextInt();int[] array = new int[3 * n];for (int i = 0; i < array.length; i++) {array[i] = in.nextInt();}Arrays.sort(array);long sum = 0;for (int i = array.length - 2; i >= n; i -= 2) {sum += array[i];}System.out.println(sum);}}
}

相关内容

热门资讯

画虎画皮难画骨的近义词 画虎画皮难画骨的近义词有:知人知面不知心,画虎画皮难画骨[huà hǔ huà pí nán huà...
胡言乱语的近义词 胡言乱语的近义词有:一片胡言,一簧两舌,乱语胡言,信口开河,信口雌黄,口不择言,天花乱坠,奇谈怪论,...
光天化日,光天化日的意思,光... 光天化日guāng tiān huà rì [释义]充满阳光的天空;化生万物的太阳。旧时比喻太...
特意的近义词   一、【近义词】特地  二、【基本解释】  [释义](副)特地。(同音)特地。  [构成]偏正式:...
官高爵显的近义词 官高爵显的近义词有:高官显爵,官高爵显[guān gāo jué xiǎn]的意思:爵:爵位,官爵;...
切要关头的近义词 切要关头的近义词有:紧要关头,切要关头[qiè yào guān tóu]的意思:关头:关口。比喻有...
面面俱到,面面俱到的意思,面... 面面俱到miàn miàn jù dào [释义]俱:都。各方面都照顾到。也指虽然各方面都照顾...
人单势孤的近义词 人单势孤的近义词有:势单力薄,人单势孤[rén dān shì gū]的意思:人数少,力量单薄。出自...
间断的近义词   一、【近义词】  中断、中止、拆开、休止  二、【基本解释】  [释义](动)(连续的事情)中间...
乡壁虚造的近义词 乡壁虚造的近义词有:凭空捏造,无中生有,面壁虚构,乡壁虚造[xiāng bì xū zào]的意思:...
盎盂相敲的近义词 盎盂相敲的近义词有:盎盂相击,盎盂相敲[àng yú xiāng qiāo]的意思:比喻一家人争吵。...
高枕而卧的近义词 高枕而卧的近义词有:无忧无虑,高枕安卧,高枕安寝,高枕无忧,高枕而卧[gāo zhěn ér wò]...
破题儿第一遭的近义词 破题儿第一遭的近义词有:破题儿,破题儿头一遭,破题儿第一遭[pò tí ér dì yī zāo]的...
如堕烟海的近义词 如堕烟海的近义词有:如坐云雾,如堕烟雾,雾里看花,如堕烟海[rú duò yān hǎi]的意思:好...
雁杳鱼沉的近义词 雁杳鱼沉的近义词有:信断音绝,雁断鱼沉,雁逝鱼沉,雁杳鱼沉[yàn yǎo yú chén]的意思:...
汪洋大海的近义词 汪洋大海的近义词有:东洋大海,声势浩大,波澜壮阔,汪洋大海[wāng yáng dà hǎi]的意思...
明效大验的近义词 明效大验的近义词有:明验大效,明效大验[míng xiào dà yà]的意思:显著而又巨大的效验。...
难乎为继的近义词 难乎为继的近义词有:难以为继,难乎为继[nán hū wéi jì]的意思:难于继续下去。出自:清 ...
在所难免的近义词 在所难免的近义词有:在劫难逃,在所不免,在所无免,在所难免[zài suǒ nán miǎn]的意思...
恨入心髓的近义词 恨入心髓的近义词有:恨之入骨,恨之切骨,恨入骨髓,恨入心髓[hèn rù xīn suǐ]的意思:恨...