蓝桥杯 算法提高 8皇后·改

3人阅读 评论(0) 收藏 举报
分类:
  算法提高 8皇后·改  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  规则同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

其实和8皇后问题差不多就是加了一个求路线最大值,回溯搜索一下,选择好了之后求一下和每次保存下最大值最后输出即可


ac代码如下


#include <iostream>
#include <cmath>
using namespace std;
int map[8][8]={0};
int cur[8]={0}; //用一个一维数组表示皇后放置的状态,数组内元素代表第几列,数组下标代表第几行
int ans=0;
int book[8]={0};

bool check(){
	for(int i=0;i<7;i++){
		for(int j=i+1;j<8;j++){
			if(cur[i]==cur[j]||(i-j==cur[i]-cur[j])||(j-i==cur[i]-cur[j])){
				return false;
			}
		}
	}
	return true;
}

int sum(){
	int summ=0;
	for(int i=0;i<8;i++){
		summ+=map[i][cur[i]];
	}
	return summ;
}

void dfs(int s){
	if(s==8){
		if(check()){
			int summ=sum();
			ans=max(ans,summ);
		}
		return;
	}
	
	for(int i=0;i<8;i++){
		if(book[i]==0){
			book[i]=1;
			cur[s]=i;
			dfs(s+1);
			cur[s]=0;
			book[i]=0;
		}
	
	}
	return;
}

int main()
{
	for(int i=0;i<8;i++)
	for(int j=0;j<8;j++)
	cin>>map[i][j];
	dfs(0);
	cout<<ans;
	return 0;
}

查看评论

美术改画系列

这次的课程分为6章,将为大家呈现完全不一样的游戏设计,通过6个不同方向的美术设计的指导,让大家在老师的改画的过程中学习到更多的关于游戏美术设计方面的知识!
  • 2015年11月19日 10:01

【蓝桥杯】8皇后·改

规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。...
  • eagle_or_snail
  • eagle_or_snail
  • 2017-03-07 20:04:20
  • 652

(蓝桥杯)算法提高 8皇后·改

问题描述  规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。输入格式  一个8*8的棋盘。输出格式  所能得到的最大数字和样例输入1 2 3 4 5 6 7 ...
  • zhouzi2018
  • zhouzi2018
  • 2018-03-06 23:42:48
  • 25

算法提高 8皇后·改

问题描述   规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。 输入格式   一个8*8的棋盘。 输出格式   所能得到的最大数字和 样例输入 1 2 3 ...
  • qq_29656961
  • qq_29656961
  • 2017-01-13 14:11:33
  • 434

蓝桥杯 ADV-203 算法提高 8皇后·改(八皇后问题)

问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。 输入格式 一个8*8的棋盘。 输出格式 所能得到的最大数字和 样例输入 1 2 3 4 5 6 ...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:27:22
  • 270

八皇后问题(可改为N皇后)递归

N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...
  • chao1983210400
  • chao1983210400
  • 2014-02-23 14:53:09
  • 1837

蓝桥杯练习系统 八皇后改 java解答

时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述   规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。 输入格式   一个8*8的棋盘。 输出格式  ...
  • Haidaiya
  • Haidaiya
  • 2018-03-15 16:04:40
  • 22

关于蓝桥杯15届校赛第五题-八皇后问题

昨天比较忙,所以博客只能推迟到今天凌晨写了,无奈,主要是想总结一下自己做这道题后的一些见解和一些疑惑。 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于...
  • f_zyj
  • f_zyj
  • 2015-11-20 01:56:53
  • 1754

算法提高 棋盘多项式

算法提高 棋盘多项式   时间限制:1.0s   内存限制:256.0MB           棋盘多项式 问题描述   八皇后问题是在棋盘上放皇后,互相不攻...
  • flx413
  • flx413
  • 2017-02-03 11:44:06
  • 533

蓝桥杯练习题库-4算法提高+VIP题

  • 2018年03月24日 13:03
  • 695KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 9728
    积分: 734
    排名: 6万+
    最新评论