码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1321 棋盘问题

时间:2018-05-22 22:02:04      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:acm

#include<cstdio> #include<cstring> using namespace std; char chess[10][10]; bool book[10];//记录此列有无被放置棋子 int n,k,num,way; void dfs(int row){ if(num==k){ way++; return; } if(row>=n) return;//从0开始 for(int col=0;col<n;col++){ if(!book[col]&&chess[row][col]==‘#‘){ num++; book[col]=true; dfs(row+1); book[col]=false;//此时此节点的枝叶已经被搜索完毕,重置 num--; } } dfs(row+1);//逐行放置棋子,遍历图表 } int main(){ while(~scanf("%d %d",&n,&k)&&n!=-1){ way=num=0; memset(book,false,sizeof(book)); memset(chess,‘.‘,sizeof(chess)); for(int i=0;i<n;i++) scanf("%s",&chess[i]); dfs(0); printf("%d\n",way); } return 0; }

POJ 1321 棋盘问题

标签:acm

原文地址:http://blog.51cto.com/13688928/2119235

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!