题目
作为篮球队教练,你需要从以下名单中选出1 号位至5 号位各一名球员,组成球队的首发阵容。
每位球员担任1号位至5号位时的评分如下表所示。
请你计算首发阵容1号位至5号位的评分之和最大可能是多少?
思路
题目难度不大,给了20个人,每个人可能有多种位置的选择,若想要达到所有位置之和是最大值,即保证每一个位置都是最大值即可,于是很简单的思路就是对上图除了第一列编号以外的剩下5列进行排序即可。这里需要注意的是,因为一个人只能占一个位置,因此如果第一个位置选择了1号,则剩下的四个位置都不能选择1号。
由于是填空题,直接用计算器算就好了,答案是490。
代码
题目比较简单不太需要代码,反而写代码还更浪费时间。
不过代码的大致思路是一样的,但是要知道二维数组排序比较麻烦,而且容易打乱队员的编号,因此我觉得使用结构体会比较方便,结构体定义如下:
struct man{
int f1, f2, f3, f4, f5; //分别对应5个位置的分数
bool flag; //判断是否已占用
};
然后完成结构体数组的定义,排序5次序即可得到5列队员的编号。