poj1321

it2022-05-05  107

http://acm.pku.edu.cn/JudgeOnline/problem?id=1321

类似八皇后问题,直接回溯就可以了

 

 

#include<iostream> #include<string> using namespace std; char board[8][8]; bool col[8],row[8]; int sum; void backup(int hang,int k,int s); int main() { int n,k,i,j; cin>>n>>k; while(n != -1 && k != -1) { memset(board,'.',sizeof(board)); memset(col,false,sizeof(col)); memset(row,false,sizeof(row)); sum = 0; for (i = 0;i < n;i++) for (j = 0;j < n;j++) { cin>>board[i][j]; } backup(0,n,k); cout<<sum<<endl; cin>>n>>k; } return 0; } void backup(int hang,int k,int s) { int i,j; if (hang < k) { if (s == 0) sum++; else { for (i = hang;i < k;i++) { for (j = 0;j < k;j++) { if (board[i][j] == '#' && col[i] == false && row[j] == false) { board[i][j] = '.'; col[i] = true; row[j] = true; backup(i+1,k,s-1); board[i][j] = '#'; col[i] = false; row[j] = false; } } } } } else { if (s == 0) sum++; } }

转载于:https://www.cnblogs.com/xinguohenan/archive/2009/05/09/1453299.html

相关资源:各显卡算力对照表!

最新回复(0)