问题标题: 酷町堂:1256菜地个数哪错了?

0
0
已解决
王子凡
王子凡
高级光能
高级光能
#include<iostream>
using namespace std;
int ans,n,a[110][110],dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
bool used[110][110];
bool ok(int x,int y)
{
    if (x>=1 && x<=n && y>=1 && y<=n && a[x][y]==1)
        return true;
    return false;
}
void search(int x,int y)
{
    if (a[x][y]==1)
    {
        ans++;
        return ;
    }
    for (int i=0;i<4;i++)
    {
        int=x+dir[i][0];
        int=y+dir[i][1];
        if (ok(nx,ny) && !used[nx][ny])
        {
            a[nx][ny]=-1;
            used[nx][ny]=true;
            search(nx,ny);
            used[nx][ny]=false;
        }
    }
    search(nx,ny);
} 
int main()
{
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        int c,r;
        cin>>c>>r;
        for (int k=1;k<=c;k++)
            for (int j=1;j<=r;j++)
                cin>>a[k][j];
        search(1,1);    
        cout<<ans<<endl;
    } 
    return 0;
}

 


1
已采纳
程天瑞
程天瑞
资深守护
资深守护

你打错了,不能用迷宫来做,只要上下左右在一起就可以了。

0
0
0
0
0
0
黄俊博
黄俊博
资深光能
资深光能

用循环控制n组数据,for (int i=1;i<=n;i++)

{

cin>>n;

}

再用二维数组控制a行w列;

在递归回溯(dfs)

我要回答