poj 2488 回溯法

回溯法:

注意状态的转换,用尽量少的数据记录状态表,注意搜索的方向

例如八皇后问题: 只需记录列数 是否可用;

搜索方向的为:搜索当前行+搜索下一行

 

 

#include using namespace std; int ROW,COL,total; bool squares [26][26]; int path[26*26][2]; bool find; void printPath(){ for (int i=0;i=0 && c>=0 && squares[r][c]) { dfs(r,c,pos+1); } } squares[preR][preC]=true; } void solve(){ find=false; for (int i = 0; i < ROW ; i++) { for (int j = 0; j < COL ; j++) { dfs(i,j,1); if (find) { return; } } } if (!find) { cout<<"impossible"<>caseNum; for (int i = 1; i <= caseNum ; i++) { cin>>COL>>ROW; //col:1 2 3 ...COL //ROW:A,B total = COL*ROW; cout<<"Scenario #"<

 

你可能感兴趣的:(path,c)