UVa 167 - The Sultan's Successors
2013-05-13 11:47
363 查看
/* 八皇后问题两种方法实现,参考《算法竞赛入门经典》 */ #include <cstdio> #include <cstring> #include <iostream> using namespace std; const int MAX = 8; const int RESULT = 100; int row[MAX]; int save[RESULT][MAX]; int cur = 0; int m[MAX][MAX]; int visit[3][MAX*2] = {0}; bool ok(int x, int y) { for(int i=0; i<x; i++) { if(row[i]==y || row[i]+i==x+y || row[i]-i==y-x) return false; } return true; } void dfs2(int level) { if(level == MAX) { memcpy(save[cur], row, sizeof(row)); cur++; return; } for(int i=0; i<MAX; i++) { if(ok(level, i)) { row[level] = i; dfs2(level+1); } } } void dfs(int level) { if(level == MAX) { memcpy(save[cur], row, sizeof(row)); cur++; return; } for(int i=0; i<MAX; i++) { if(!visit[0][i] && !visit[1][i+level] && !visit[2][level-i+MAX-1]) { visit[0][i] = visit[1][i+level] = visit[2][level-i+MAX-1] = 1; row[level] = i; dfs(level+1); visit[0][i] = visit[1][i+level] = visit[2][level-i+MAX-1] = 0; } } } int main() { #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif //dfs(0); dfs2(0); int k; scanf("%d", &k); while(k--) { for(int i=0; i<MAX; i++) { for(int j=0; j<MAX; j++) { scanf("%d", &m[i][j]); } } int max_score = 0; for(int i=0; i<cur; i++) { int sum = 0; for(int j=0; j<MAX; j++) { sum += m[j][save[i][j]]; } if(sum > max_score) max_score = sum; } printf("%5d\n", max_score); } return 0; }
相关文章推荐
- 【权值八皇后】uva 167——The Sultan's Successors
- UVA - 167 The Sultan's Successors(回溯 八皇后问题改编)
- UVa 167 - The Sultan's Successors, 八皇后问题
- uva 167 The Sultan's Successors
- UVa 167 - The Sultan's Successors
- UVa 167 The Sultan's Successors (八皇后问题)
- uva-167 - The Sultan's Successors-八皇后-回溯
- UVA 167 The Sultan's Successors
- uva 167 - The Sultan's Successors(典型的八皇后问题)
- uva 167 - The Sultan's Successors
- uva167 -The Sultan's Successors(类八皇后)
- uva 167 - The Sultan's Successors(典型的八皇后问题)
- UVA_167_The Sultan's Successors
- uva 167 The Sultan's Successors 搜索
- Uva-167-The Sultan's Successors
- UVa 167 - The Sultan's Successors 递归回溯
- uva 167 - The Sultan's Successors
- UVA The Sultan's Successors
- 167 - The Sultan's Successors 回溯
- UVaOJ167 - The Sultan's Successors