2 1#..#4 4...#..#..#..#...-1 -1Example Output
21dfs,借鉴了下网上的代码。
#include <stdio.h>#include <string.h>int map[10][10];int book[10];int n,k,cnt=0;void dfs(int m,int num){ if(num==k) { cnt++; return ; } if(m>n) return ; int i,j; for(i=0;i<n;i++) { if(map[m][i]&&!book[i]) { book[i]=1; dfs(m+1,num+1); book[i]=0; } } dfs(m+1,num); return ;}int main(){ while(~scanf("%d %d",&n,&k)) { getchar(); if(k==-1&&n==-1) break; memset(map,0,sizeof(map)); memset(book,0,sizeof(book)); cnt=0; int i,j; for(i=0;i<n;i++) { for(j=0;j<=n;j++) { char s; scanf("%c",&s); //putchar(s); if(s=='#') map[i][j]=1; } } dfs(0,0); printf("%d/n",cnt); } return 0;}/***************************************************User name: Result: AcceptedTake time: 0msTake Memory: 112KBSubmit time: 2017-02-20 15:16:23****************************************************/
新闻热点
疑难解答