社区讨论

阳历莓果

P1747好奇怪的游戏参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhj92q6w
此快照首次捕获于
2025/11/03 22:43
4 个月前
此快照最后确认于
2025/11/03 22:43
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
bool vis[25][25];
struct ss
{
    long long x,y,pos;
    ss(long long x0=0,long long y0=0,long long pos0=0)
    {
        x=x0,y=y0,pos=pos0;
    }
};
long long ans;
void bfs(long long a,long long b);
int main(){
	for(int o=0;o<=1;o++)
    {
        memset(vis,0,sizeof(vis));
        ans=0x7fffffffffff;
        long long a,b;
        cin>>a>>b;
        bfs(a,b);
        cout<<ans<<'\n';
    }
	
	
	
	return 0;
}
void bfs(long long a,long long b)
{
    queue<ss>q;
    q.push(ss(a,b,0));
    while(!q.empty())
    {
        long long x,y,pos;
        x=q.front().x;
        y=q.front().y;
        pos=q.front().pos;
        q.pop();
        if(x==1&&y==1)
        {
            //cout<<pos<<'\n';
            
            ans=min(ans,pos);
            continue;
        }
        if(x<1||y<1||x>a||y>b)
        {
            continue;
        }
        if(vis[x][y])
            continue;
        vis[x][y]=1;
        q.push(ss(x+1,y+2,pos+1));
        q.push(ss(x-1,y+2,pos+1));
        q.push(ss(x+2,y+1,pos+1));
        q.push(ss(x+2,y-1,pos+1));
        q.push(ss(x-1,y-2,pos+1));
        q.push(ss(x-2,y+1,pos+1));
        q.push(ss(x+1,y-2,pos+1));
        q.push(ss(x-2,y-1,pos+1));
        q.push(ss(x+3,y+3,pos+1));
        q.push(ss(x-3,y+3,pos+1));
        q.push(ss(x+3,y-3,pos+1));
        q.push(ss(x-3,y-3,pos+1));
    }
}

回复

1 条回复,欢迎继续交流。

正在加载回复...