首页 > 其他 > 详细

poj1321棋盘简单深搜

时间:2015-08-16 21:22:39      阅读:154      评论:0      收藏:0      [点我收藏+]
这个题确实有点简单,看清楚不能同列同行就好了,用一个一维数组标记哪一列用了往下搜就好了
#include<stdio.h>
int flag[8]={1,1,1,1,1,1,1,1},i,j,n,k,num=0;
char arr[10][11];
void dfs(int a,int b)
{
	int ii,jj;
	if(b==0)
	{
		num++;
		return ;
	}
	for(ii=a+1;ii<n;ii++)
		for(jj=0;jj<n;jj++)
		{
			if(flag[jj]&&arr[ii][jj]=='#')
			{
				flag[jj]=0;
				b--;
				dfs(ii,b);
				b++;
				flag[jj]=1;
			}
		}
}
int main()
{
	char c;
	while(~scanf("%d%d",&n,&k)&&(n!=-1||k!=-1))
	{
		scanf("%c",&c);
		for(i=0;i<n;i++)
			for(j=0;j<n+1;j++)
				scanf("%c",&arr[i][j]);
		dfs(-1,k);
		printf("%d",num);
		printf("\n");
		num=0;
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

poj1321棋盘简单深搜

原文:http://blog.csdn.net/wu__peng/article/details/47706471

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!