poj 1321 棋盘问题
2012-09-27 21:38
176 查看
题目连接:http://poj.org/problem?id=1321
#include<iostream> #include<algorithm> using namespace std; const int MAX=9; char map[MAX][MAX]; bool visit[MAX]; int k,n,count_q; void dfs(int cur,int tot_q ) //cur 是第cur行,tot_q是已经放了多少只棋子了 { if(tot_q==k) { count_q++; return ; } if(cur>=n) return ; for(int i=0;i<n;i++) //在第cur行中选一个位置 { if(!visit[i]&&map[cur][i]=='#') { visit[i]=true; dfs(cur+1,tot_q+1); visit[i]=false; //这个地方一定要把还原为false,递归跳到了上一层后相当于没有选上第 i 列 } } dfs(cur+1,tot_q); //第cur行没有放棋子 } int main() { cin>>n>>k; while(n!=-1&&k!=-1) { count_q=0; int i,j; for(i=0;i<MAX+1;i++) visit[i]=false; for(i=0;i<n;i++) { for(j=0;j<n;j++) { cin>>map[i][j]; } } dfs(0,0); cout<<count_q<<endl;; cin>>n>>k; } return 0; }
相关文章推荐
- POJ 1321 - 棋盘问题
- POJ 1321 棋盘问题(kuangbin带你飞 专题一)
- POJ 1321 棋盘问题 (dfs)
- POJ 1321 棋盘问题
- poj 1321 棋盘问题
- POJ 1321 棋盘问题---[kuangbin带你飞]专题一 简单搜索
- poj-1321棋盘问题(dfs 找出最多有几种摆放棋子的可能)
- POJ_1321 棋盘问题解题报告
- Poj 1321 棋盘问题(搜索)
- POJ-1321 棋盘问题(深搜)
- ACM篇 : POJ 1321 -- 棋盘问题
- poj1321棋盘问题{wa}
- poj 1321 棋盘问题
- poj 1321 棋盘问题 dfs 回溯
- poj 1321 棋盘问题
- POJ 1321 棋盘问题(dfs)
- poj-1321-棋盘问题-回溯
- poj1321——棋盘问题——————【状态压缩、动态规划】
- 状态压缩动态规划 -- 棋盘问题 POJ 1321
- poj 1321棋盘问题