问题标题: 螃蟹

0
0
已解决
胡浩川
胡浩川
新手守护
新手守护
#include<bits/stdc++.h>
using namespace std;
const int N=10;
int cnt; 
int sx,sy,ex,ey;
int a[N][N],u[1000],v[1000];
bool vis[N][N];
int dir[][2]={{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}};
void dfs(int x,int y,int step){
    u[step]=x;
    v[step]=y;
    if(x==ex&&y==ey){
        cnt++;
        for(int i=1;i<=5;i++){
            cout<<"("<<u[i]<<","<<v[i]<<")";
            if(i!=step)cout<<"->";
            else cout<<endl;
        }
        return;
    }
    for(int i=0;i<8;i++){
        int dx=x+dir[i][0];
        int dy=y+dir[i][1];
        if(dx>=1&&dx<=8&&dy>=1&&dy<=8&&a[dx][dy]==0&&!vis[dx][dy]){
            vis[dx][dy]=1;
            dfs(dx,dy,step+1);
            vis[dx][dy]=0;
        }
    }
}
int main(){
    cin>>sx>>sy>>ex>>ey;
    for(int i=1;i<=8;i++){
        for(int j=1;j<=8;j++){
            cin>>a[i][j];
        }
    }
    vis[sx][sy]=1;
    dfs(sx,sy,1);
    cout<<cnt;
    return 0;
}

代码如上

本来是准备写5014的

结果这个输出像螃蟹一样

样例输入

8 8 3 6
0 0 1 0 1 1 1 0
0 0 0 0 1 1 0 1
0 1 0 0 1 0 0 0
0 0 0 1 0 0 0 1
1 0 1 0 1 1 0 1
0 1 0 1 0 0 1 0
1 1 0 0 1 0 1 0
0 0 1 1 0 1 1 0

大家可以自己去试一下,很好玩


0
已采纳
范聿舟
范聿舟
初级光能
初级光能

复制不了,板块用代码分享

0
王旭邈
王旭邈
初级天翼
初级天翼

从你的头像我可以得知:酷町还是有人玩fl的,虽然我已经退了

我要回答