第十届蓝桥杯 javaB 组队
思路:dfs枚举每个位置上运动员编号,记录最大得分。
答案:450
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
* 490 枚举五个位置的队员编号
*
* @description TODO
* @author frontier
* @time 2019年4月10日 上午9:28:42
*
*/
public class A组队 {
static Scanner in = new Scanner(System.in);
static int n;
static int[][] a = new int[25][10];
static boolean[] vis = new boolean[25];
static int max = Integer.MIN_VALUE;
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new File("src/JavaB/s10/1.txt"));
for (int i = 1; i <= 20; ++i)
for (int j = 1; j <= 5; ++j)
a[i][j] = in.nextInt();
dfs(0, 0);
System.out.println(max);
}
static void dfs(int k, int sum) {
if (k == 5) {
if (sum > max)
max = sum;
return;
}
for (int i = 1; i <= 20; ++i) {
if (!vis[i]) {
vis[i] = true;
dfs(k + 1, sum + a[i][k + 1]);
vis[i] = false;
}
}
}
}