1747,有两个循环却只能输出一个数,有大佬帮忙看看吗
查看原帖
1747,有两个循环却只能输出一个数,有大佬帮忙看看吗
175775
猜一猜楼主2020/6/28 17:27
#include<bits/stdc++.h>
using namespace std;
int dx[13]={0,-2,-2,-1,1,2,2,2,2,1,-1,-2,-2};
int dy[13]={0,-1,-2,-2,-2,-2,-1,1,2,2,2,2,1};
int f[999][999];
struct yy
{
    int x,y,s;
 } que[999];
void yy()
{
	 for(int i=0;i<=666;i++){
      
            que[i].x=0;
            que[i].y=0;
            que[i].s=0;
        }  
    int a1,a2;
    cin>>a1>>a2;
    int head=1;
    int tail=2;
    que[head].x=a1;
    que[head].y=a2;
    que[head].s=0; 
    for(int i=0;i<=102;i++){
        for(int j=0;j<=102;j++){
            f[i][j]=0;
        }  }
    f[a1][a2]=1;
    while(head<tail)
    {
        for(int i=1;i<=12;i++)
        {
            int x1=dx[i]+que[head].x;
            int y1=dy[i]+que[head].y;
            if(x1<=100&&y1<=100&&x1>=0&&y1>=0&&f[x1][y1]==0)
            {
                if(x1==1&&y1==1)
                {
                    cout<<que[head].s+1;
                }
                f[x1][y1]=1;
                que[tail].x=x1;
              que[tail].y=y1;
              que[tail].s=que[head].s+1; 
              tail++;
            } 

        }
        head++;
    }
}
int main()
{
	yy();
	yy();
	return 0;
}
    
 
2020/6/28 17:27
加载中...