• 算法提高 8皇后·改


    问题描述
      规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。
    输入格式
      一个8*8的棋盘。
    输出格式
      所能得到的最大数字和
    样例输入
    1 2 3 4 5 6 7 8
    9 10 11 12 13 14 15 16
    17 18 19 20 21 22 23 24
    25 26 27 28 29 30 31 32
    33 34 35 36 37 38 39 40
    41 42 43 44 45 46 47 48
    48 50 51 52 53 54 55 56
    57 58 59 60 61 62 63 64
    样例输出
    260
    数据规模和约定
      棋盘上的数字范围0~99
     1 import java.util.ArrayList;
     2 import java.util.Arrays;
     3 import java.util.Collections;
     4 import java.util.List;
     5 import java.util.Scanner;
     6 
     7 public class Main{
     8     static int[][] a;
     9     static boolean[] leftup;
    10     static boolean[] leftdown;
    11     static boolean[] lie;
    12     static int max = 0;
    13     public static void main(String[] args) {
    14         Scanner input = new Scanner(System.in);
    15         a = new int[9][9];
    16         leftup = new boolean[16];
    17         leftdown = new boolean[16];
    18         lie = new boolean[9];
    19         for(int i=1;i<=8;i++){
    20             for(int j=1;j<=8;j++){
    21                 a[i][j] = input.nextInt();
    22             }
    23         }
    24         f(1,0);
    25         System.out.println(max);
    26     }
    27     public static void f(int i,int sum){
    28         if(i==9){
    29             if(max<sum){
    30                 max = sum;
    31             }
    32             return;
    33         }
    34         for(int j=1;j<=8;j++){
    35             if(!lie[j]&&!leftup[i+j-1]&&!leftdown[j-i+8]){
    36                 lie[j] = true;
    37                 leftup[i+j-1] = true;
    38                 leftdown[j-i+8] = true;
    39                 f(i+1,sum+a[i][j]);
    40                 lie[j] = false;
    41                 leftup[i+j-1] = false;
    42                 leftdown[j-i+8] = false;
    43             }
    44         }
    45     }
    46 }
  • 相关阅读:
    TI tlv320aic3104 codec调试之DAI
    【考试总结】20220719
    【考试总结】20220705
    【ARC127F】±AB
    【考试总结】20220725
    【考试总结】20220711
    【考试总结】20220713
    【考试总结】20220706
    【考试总结】20220721
    【考试总结】20220718
  • 原文地址:https://www.cnblogs.com/lolybj/p/6650862.html
Copyright © 2020-2023  润新知