HDU 2553N皇后问题
2012-03-10 17:17
218 查看
一看到此题想都没想就用简单的回溯,可是写好代码测试样里也通过已提交就是TLE;
后来请教了大神他说测试数据可能有多组单纯的输出可能会超时,好吧!我把每种情况都提前算好放在数组里
接收一个我就输出一个,这样提前就把N皇后给初始化,最后输出果断AC了。
后来请教了大神他说测试数据可能有多组单纯的输出可能会超时,好吧!我把每种情况都提前算好放在数组里
接收一个我就输出一个,这样提前就把N皇后给初始化,最后输出果断AC了。
#include<cstdio> #include<iostream> using namespace std; int N, visit[3][30], tot, C[50]; void dfs(int cur,int N) { int i, j; if(cur == N) { tot++; return ; } else for(i=0; i<N; i++) { if(!visit[0][i] && !visit[1][cur+i] && !visit[2][cur-i+N]) { visit[0][i] = visit[1][cur+i] = visit[2][cur-i+N] = 1; dfs(cur+1,N); visit[0][i] = visit[1][cur+i] = visit[2][cur-i+N] = 0; } } } void Init() { int i; for(i=0; i<11; i++) { memset(visit,0,sizeof(visit)); tot = 0; dfs(0,i); C[i] = tot; } } int main() { Init(); while(scanf("%d", &N) && N) { printf("%d\n", C ); } return 0; }
相关文章推荐
- HDU 2553N皇后问题
- hdu 2553N皇后问题
- HDU 2553 N皇后问题(深搜DFS)
- HDU - 2553 N皇后问题
- hdu 2553 n皇后问题
- HDU 2553 N皇后问题
- HDU 2553 N皇后问题
- 【题解】 状态压缩 CSYZOJ 1040 || codevs 1295 || hdu 2553 N皇后问题
- HDU 2553 N皇后问题(深搜)
- HDU 2553 N皇后问题(dfs)
- hdu 2553 N皇后问题 经典dfs
- hdu 2553 N皇后问题 解题报告
- hdu 2553 N皇后问题----搜索 dfs 回溯法 预处理
- HDU--2553 -- N皇后问题
- N皇后问题(HDU 2553)
- hdu 2553 N皇后问题【dfs】
- HDU 2553 N皇后问题 dfs回溯+打表
- HDU-2553-N皇后问题
- HDU 2553 N皇后问题
- hdu 2553 N皇后问题