组队竞赛-- 选出平均值的和最大的组合,输出平均值的和

牛牛组织了一个3人一组的编程比赛,需组建n个队伍,每个队伍的水平值等于队员中的第二高值。目标是找到一种分组方式,使所有队伍的水平值总和最大。例如,6名选手按不同组合分组,最佳情况下的水平值总和为10。

题目描述:题目来自牛客网

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
例如:
一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2

题目描述 机器人比赛中,队员的个人能力并非是决定队伍成绩的唯一因素。队员间的协作磨合往往更关键—有时个人能力强的“强强组合”,成绩反而不如能力稍弱但协作好的队伍。现有 n 名候选队员,需从中选出k名组成队伍,需通过计算队伍综合实力,选出综合实力最大队伍。 已知条件如下: 1. 每名队员i(编号0~n-1)有非负整数的个人能力值a[i: 2. 任意两名队员ij之间有非负整数的协作系数c[[,且满足c[ibil=cG]i、c[i[i=0(自身无协作关系)。 队伍综合实力的计算规则为: • 综合实力=队伍中所有队员的个人能力总+队伍中所有不同队员对的协作系数总。 请你设计算法,计算并输出选出k名队员组成队伍最大综合实力值。 输入格式 1. 第一行:两个整数nk,分别表示候选队员总数、需选出的队员数(2≤k≤n≤20); 2. 第二行:n个非负整数,依次表示a[0],a[1],••a[n-1],即每名队员的个人能力值(0≤a[i]≤100); 3. 接下来n 行:每行包含n个非负整数,第i行第j列的数表示c[i][j
(0≤cli][j≤100)。 输出格式 一个整数,表示选出k名队员组成队伍最大综合实力值。 样例输入 4 2 10 9 8 7 0 3 1 0 3 0 2 4 1 2 0 5 0 4 5 0 样例输出 22 样例解释 候选队员共4人,需选2人组队,所有可能组队的综合实力计算如下: * 队员 0+1:个人能力=10+9=19,协作系数=3-综合实力=22; * 队员 0+2:个人能力 =10+8=18,协作系数=1 综合实力=19; * 队员 0+3:个人能力=10+7=17,协作系数 =0 综合实力=17; * 队员 1+2:个人能力 = 9+8=17,协作系数=2 综合实力=19; * 队员 1+3:个人能力= 9+7=16,协作系数=4 综合实力= 20; * 队员 2+3:个人能力 =8+7=15,协作系数=5 综合实力=20。 其中最大综合实力为 22。 数据范围 * 队员总数:2≤n≤ 20 * 需选队员数:2≤k≤n * 个人能力值:0≤ ali]≤ 100 * 协作系数:0≤ c[i][j] ≤ 100,且c[i]lj] = c[jl[i]、c[i]li] = 0
最新发布
10-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值