2019第十届蓝桥杯C/C++ B组省赛 试题A:组队

版权声明:本文为博主原创文章,未经博主允许不得转载,欢迎添加友链。 https://blog.csdn.net/qq_42835910/article/details/89433556

2019第十届蓝桥杯省赛C/C++B组 

第一题、组队
    作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。
每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少

1 97 90 0 0 0
2 92 85 96 0 0
3 0 0 0 0 93
4 0 0 0 80 86
5 89 83 97 0 0
6 82 86 0 0 0
7 0 0 0 87 90
8 0 97 96 0 0
9 0 0 89 0 0
10 95 99 0 0 0
11 0 0 96 97 0
12 0 0 0 93 98
13 94 91 0 0 0
14 0 83 87 0 0
15 0 0 98 97 98
16 0 0 0 93 86
17 98 83 99 98 81
18 93 87 92 96 98
19 0 0 0 89 92
20 0 99 96 95 81

 答案: 490

#include <iostream>
using namespace std; 
const int n = 5, m = 20; 
int a[m+1][n+1];
int vis[20];
int ans = 0;
void solve(int cur,int sum){
	if(cur == 5){
		ans = max(ans,sum);
		return ;
	}
	for(int i = 0; i < 20; i++){
		if(!vis[i]){
			vis[i] = 1;
			solve(cur+1, sum+a[i][cur]);
			vis[i] = 0;
		}
	}
}

int main(int argc, char** argv) {
	int x;
	for(int i = 0; i < 20; i++){
		cin>> x;
		for(int j = 0; j < 5; j++)
			cin>> a[i][j];
	}
	solve(0, 0);
	cout<< ans<< endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42835910/article/details/89433556