zoukankan      html  css  js  c++  java
  • 算法提高 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 }
  • 相关阅读:
    这4点微不足道的改变,正在带我起飞
    “挑三拣四”地学一学Java I/O
    做到这3点,你也能成为一个高情商的人
    深入浅出一下Java的HashMap
    前端学习 -- Css -- 有序列表和无序列表
    Python 文件I/O
    python 模块
    python 函数
    Python 日期和时间
    python 字典
  • 原文地址:https://www.cnblogs.com/lolybj/p/6650862.html
Copyright © 2011-2022 走看看