poj1321

来源:互联网 发布:将字符串转换为json 编辑:程序博客网 时间:2024/04/30 07:21

依然是dfs题目

#include<stdio.h>#include<string.h>#include<stdlib.h>int n,k,num;char map[10][10];int can[10][10];int mark[10];void dfs(int t,int m){  int i;  if(t>k)  {    num++;    return;  }  if(m>=n)  {    return;  }  for(i=0;i<n;i++)  {    if(!mark[i]&&can[m][i])    {      mark[i]=1;      dfs(t+1,m+1);      mark[i]=0;    }  }  dfs(t,m+1);}int main(){  int i,j;    while(scanf("%d%d",&n,&k)&&(n!=-1||k!=-1))  {    num=0;    memset(map,0,sizeof(map));    memset(can,0,sizeof(can));    memset(mark,0,sizeof(mark));    for(i=0;i<n;i++)    {      scanf("%s",map[i]);    }      for(i=0;i<n;i++)    {      for(j=0;j<n;j++)      {        if(map[i][j]=='#')        {          can[i][j]=1;        }      }    }    dfs(1,0);    printf("%d\n",num);  }  return 0;}


0 0
原创粉丝点击