用递归实现各种情况的枚举,可以看做是考察DPS的简单实现。
#include <stdio.h> ][]; int place(int x,int y){ int i; ;i--){ ) ; ) break; } for(i=y;i<n;i++){ ) ; ) break; } ;i--){ ) ; ) break; } for(i=x;i<n;i++){ ) ; ) break; } ; } void DFS(){ int i,j; if(count>max) max=count; ;i<n;i++){ ;j<n;j++){ if(!target[i][j]&&place(i,j)){ target[i][j]=; count++; DFS(); count--; target[i][j]=; } } } } int main(){ int i,j; char c; ){ scanf("%d",&n); ) break; max=count=; ;i<n;i++){ getchar(); ;j<n;j++){ scanf("%c",&c); target[i][j]=(c==:); } } DFS(); printf("%d\n",max); } ; }