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

poj1321棋盘简单深搜

时间:2015-08-16 21:24:29      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:c语言

这个题确实有点简单,看清楚不能同列同行就好了,用一个一维数组标记哪一列用了往下搜就好了
#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棋盘简单深搜

标签:c语言

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

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