算法提高 8皇后·改
来源:互联网 发布:车道识别算法 编辑:程序博客网 时间:2024/04/29 06:23
问题描述
规则同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
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个位置和的最大值
代码:
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int a[8],map[8][8],M=-999;int check(int x){int i;for (i=0; i<x; i++){if (a[i] == a[x])return 0;else if (a[x] - a[i] == x - i)return 0;else if (a[x] - a[i] == i - x)return 0;}return 1;}void dfs(int x,int sum){int i,j,k;if (x == 8){if (sum > M){M = sum;}return ;}for (i=0; i<8; i++){a[x] = i;if (check(x)){dfs(x+1,sum+map[x][i]);}}}int main(){int i,j;/*FILE *fp = NULL;fp = fopen("c://lanqiao.txt","r");for (i=0; i<8; i++)for (j=0; j<8; j++){fscanf(fp,"%d",&map[i][j]);}fclose(fp);*/for (i=0; i<8; i++){for (j=0; j<8; j++)scanf("%d",&map[i][j]);}dfs(0,0);cout<<M<<endl;return 0;}
0 0
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 算法提高 8皇后·改
- 蓝桥杯 ADV-203 算法提高 8皇后·改(八皇后问题)
- 蓝桥杯-算法提高 8皇后·c++实现
- 【蓝桥杯】8皇后·改
- 8皇后问题算法
- 【算法】8皇后问题
- 8皇后问题算法
- 回溯算法-8皇后
- ADV-203 8皇后(改)
- 八皇后改DFS
- Linux内核中断模块之中断处理函数描述
- GYM 100090 G.The Last Wish(水~)
- deviceconsole
- 利用spring session解决共享Session问题
- iOS如何在容器类(如NSMutableSet)中使用弱引用(weak reference)
- 算法提高 8皇后·改
- PHP:使用范围解析操作符
- 前端工程化学习(react+webpack+redux-form+支持ie8)
- 博为峰JavaEE技术文章 ——MyBatis Spring 整合-MapperScannerConfigurer
- HDU 4521 小明系列问题——小明序列 (DP)
- Dubbox和C3P0集成:NoClassDefFoundError错误
- Java中的多线程你只要看这一篇就够了
- Poj 2566 Bound Found(尺取法)
- 用Kibana和logstash快速搭建实时日志查询、收集与分析系统