1 条题解

  • 0
    @ 2024-10-26 18:50:40

    想要代码的来这:

    col1 col2 col3
    col1 col2 col3
    col1 col2 col3
    col1 col2 col3
    #include<cstdio>
    #include<iostream>
    #include<queue>
    using namespace std;
    int a[6][6],b[6][6],c[6][6];
    struct poi
    {
    	int x,y,t;
    };
    queue<poi>q;
    int X[4]={-1,0,1,0},Y[4]={0,1,0,-1};
    void pri(int x,int y)
    {
    	if(x>1||y>1)
    	{
    		if(b[x][y]==1)pri(x+1,y);
    		if(b[x][y]==2)pri(x,y-1);
    		if(b[x][y]==3)pri(x-1,y);
    		if(b[x][y]==4)pri(x,y+1);
    	}
    	printf("(%d, %d)\n",x-1,y-1);
    }
    int main()
    {
    	for(int i=1;i<=5;i++)
    	{
    		for(int j=1;j<=5;j++)scanf("%d",&a[i][j]); 
    	}
    	//cout<<1;
    	q.push({1,1,0});
    	b[1][1]=0;
    	c[1][1]=1;
    	while(q.empty()==false)
    	{
    		poi s=q.front();
    		q.pop();
    		if(s.x==5&&s.y==5)break;
    		for(int i=0;i<=3;i++)
    		{
    			int nx=s.x+X[i],ny=s.y+Y[i];
    			if(c[nx][ny]==0&&a[nx][ny]==0&&nx>0&&nx<6&&ny>0&&ny<6)
    			{	
    				c[nx][ny]=1;
    				b[nx][ny]=i+1;
    				q.push({nx,ny,s.t+1});
    			}
    		}
    	}
    	pri(5,5);
    	return 0;
    }
    
    • 1

    信息

    ID
    3121
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    71
    已通过
    16
    上传者