问题标题: 酷町堂:6467 WA...

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

#include<iostream>

#include<queue>

#include<cstring>

using namespace std;

struct node{

int x,y;

};

queue<node> q;

int x1,y1,x2,y2;

unsigned long long f[25][25];

int dir[15][2]={{0},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1},{-2,-2},{-2,2},{2,-2},{2,2}};

void bfs(){

while(!q.empty()){

node h=q.front();

q.pop();

for(int i=1;i<=12;i++){

int dx=h.x+dir[i][0],dy=h.y+dir[i][1];

if(dx>=1&&dy>=1&&dx<=20&&dy<=20&&f[dx][dy]==-1){

f[dx][dy]=f[h.x][h.y]+1;

q.push((node){dx,dy});

}

}

}

}

int main(){

cin>>x1>>y1>>x2>>y2;

memset(f,-1,sizeof(f));

f[1][1]=0;

q.push((node){1,1});

bfs();

cout<<f[x1][y1]<<endl<<f[x2][y2];

return 0;

}

...............

汪宇航在2021-04-26 18:16:17追加了内容

@赵逸凡 @赵睿泽 

@陈曦 @曹博扬 

@李瑞曦 @董宇昊 

@汪恺恒 @谭迪元 


0
已采纳
赵睿泽
赵睿泽
资深守护
资深守护

高举白旗(不会)

赵睿泽在2021-04-26 20:29:23追加了内容

求助6467

80WA

#include<iostream>

using namespace std;

int p1,q1,p2,q2,s1,s2;

struct node{

    int x,y,step;

}que[51];

int nt[13][2]={{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1},{2,1},{-2,-2},{-2,2},{2,-2},{2,2}};

int book[101][101];

int head=1,tail=1,flag1=0,flag2=0;

void bfs(){

    que[tail].x=1;

    que[tail].y=1;

    que[tail].step=0;

    tail++;

    while(head<tail){

        for(int i=0;i<12;i++){

            int tx=que[head].x+nt[i][0];

            int ty=que[head].y+nt[i][1];

            if(tx>=1&&tx<=20&&ty>=1&&ty<=20&&book[tx][ty]==0){

                book[tx][ty]=1;

                que[tail].x=tx;

                que[tail].y=ty;

                que[tail].step=que[head].step+1;

                tail++;

            }

            if(tx==q1&&ty==p1&&flag1==0){

                flag1=1;

                s1=que[tail-1].step;

            }

            if(tx==q2&&ty==p2&&flag2==0){

                flag2=1;

                s2=que[tail-1].step;    

            }

        }

        if(flag1==1&&flag2==1){

            break;

        }

        head++;

    }

    return;

}

int main(){

    cin>>p1>>q1>>p2>>q2;

    bfs();

    cout<<s1<<endl<<s2;

    return 0;

}

 

赵睿泽在2021-04-26 20:31:47追加了内容

@汪恺恒 

赵睿泽在2021-04-26 20:41:39追加了内容

而且,你是不是……

https://wenda.codingtang.com/questions/13316/

代码怎么一模一样啊……

0
我要回答