马走日可以从一个位置跳到其他的8个位置,编写函数void dfs(int x,int y,int step),三个参数的含义是马第step步走到了位置(x,y)处。 在函数中,若马走到的8个位置之一(tx,ty)在棋盘中并且没有走过(vis[tx][ty]为初始值0),则马走到该位置,即递归调用dfs(tx,ty,step+1)。 若step==n*m,表示棋盘...
}voiddfs(intx,inty){ cnt++;//一个能走的,让cnt++mp[x][y] ='#';//把走过的变为不能走的,避免重复计算for(inti=0; i<4; i++){//枚举四连通的走法if(judge(x + tox[i], y + toy[i])){//如果下一步在图内并且可走dfs(x + tox[i], y +toy[i]); } } }intmain() {while(...
void dfs(int a,int b) { ans++; s[a][b]='@'; int n,m; for(int i=0;i<4;i++) { n=a+c[i][0]; m=b+c[i][1]; if(n<h&&m<w&&n>=0&&m>=0&&s[n][m]=='.') { dfs(n,m); } } } int main() { while(cin>>w>>h&&(w!=0)&&(h!=0)) { ans=0; for(...
马走日可以从一个位置跳到其他的8个位置,编写函数void dfs(int x,int y,int step),三个参数的含义是马第step步走到了位置(x,y)处。 在函数中,若马走到的8个位置之一(tx,ty)在棋盘中并且没有走过(vis[tx][ty]为初始值0),则马走到该位置,即递归调用dfs(tx,ty,step+1)。 若step==n*m,表示棋盘...