uva-167-枚举
Posted 菜菜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva-167-枚举相关的知识,希望对你有一定的参考价值。
题意:八皇后问题,要求选取的总和最大
#include<stdio.h> #include<iostream> #include<sstream> #include<queue> #include<map> #include<memory.h> #include <math.h> #include<time.h> #include <stdlib.h> #include <algorithm> using namespace std; const int N = 8; int chess[N][N]; int final = -1; int res[N]; void read() { for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) cin >> chess[i][j]; } void search(int cur, int sum) { if(cur == N) { if(sum > final) final = sum; return; } for(int i = 0; i < N; i++) { int ok = 1; res[cur] = i; for(int j = 0; j < cur; j++) if(res[cur] == res[j] || cur - res[cur] == j - res[j] || cur + res[cur] == j + res[j]) { ok = 0; break; } if(ok) { search(cur + 1, sum + chess[cur][i]); } } } int main() { freopen("d:\\1.txt", "r", stdin); int k; cin >> k; while (k--) { read(); final = -1; search(0,0); printf("%5d\n",final); } return 0; }
以上是关于uva-167-枚举的主要内容,如果未能解决你的问题,请参考以下文章
UVa 167(八皇后)POJ2258——记两个简单回溯搜索
The Sultan's Successors UVA - 167