import java.util.Arrays;
/**
* 1.暴力,超时。 2.数学方法 http://www.pianshen.com/article/7298303105/
* https://blog.csdn.net/u013377068/article/details/88776898
* 有15天比结果大,所以为49-15=34
*
* @description TODO
* @author frontier
* @time 2019年4月8日 下午9:51:55
*
*/
public class C最大降雨量3 {
static int[] a = new int[60];
static boolean[] vis = new boolean[60];
static int[] mid = new int[10];
static double max = Integer.MIN_VALUE;
static boolean flag;
public static void main(String[] args){
dfs(0);
}
static void dfs(int n) {
if (n == 49) {
Arrays.sort(a, 43, 50);
mid[7] = a[46];
if (mid[7] < mid[6])
return;
Arrays.sort(mid, 1, 8);
System.out.println(mid[4]);
if (mid[4] > max)
max = mid[4];
flag = true;
return;
}
if (n == 7) {
Arrays.sort(a, 1, 8);
mid[1] = a[4];
}
if (n == 14) {
Arrays.sort(a, 8, 15);
mid[2] = a[11];
if (mid[2] < mid[1])
return;
}
if (n == 21) {
Arrays.sort(a, 15, 22);
mid[3] = a[18];
if (mid[3] < mid[2])
return;
}
if (n == 28) {
Arrays.sort(a, 22, 29);
mid[4] = a[25];
if (mid[4] < mid[3])
return;
}
if (n == 35) {
Arrays.sort(a, 29, 36);
mid[5] = a[32];
if (mid[5] < mid[4])
return;
}
if (n == 42) {
Arrays.sort(a, 36, 43);
mid[6] = a[39];
if (mid[6] < mid[5])
return;
}
for (int i = a[n] + 1; i <= 49; ++i) {
if (!vis[i]) {
vis[i] = true;
a[n + 1] = i;
dfs(n + 1);
vis[i] = false;
}
}
}
}
第十届蓝桥杯 JavaA 最大降雨量
最新推荐文章于 2021-04-14 18:56:11 发布