社区讨论
这是什么鬼啊
P1747好奇怪的游戏参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mi6tjd9q
- 此快照首次捕获于
- 2025/11/20 10:35 4 个月前
- 此快照最后确认于
- 2025/11/20 10:35 4 个月前
无论怎样都输出0..
蒟蒻的奇葩写法
CPP```#include<iostream>
using namespace std;
int dir[12][2]={{2,1},{1,2},{-1,2},{-2,1},{-1,-2},{-2,-1},{1,-2},{2,-1},{2,2},{-2,-2},{2,-2},{-2,2}};
int x0,x1,y0,y1;
int flag[100][100];
int vis[100][100];
int ans1,ans2,f,r;
struct node
{
int x,y,dep;
}q1[1000],q2[1000];
void bfs1()
{
f=-1;
r=0;
q1[r].x=1;
q1[r].y=1;
q1[r].dep=0;
flag[1][1]=1;
while(f<r)
{
node temp=q1[++f];
if(temp.x==x0&&temp.y==y0)
{
ans1=temp.dep;
break;
}
for(int k=0;k<12;k++)
{
int nx=x0+dir[k][0];
int ny=y0+dir[k][1];
if(x0<=0||y0<=0||x0>20||y0>20)continue;
if(flag[nx][ny]==0)
{
r++;
q1[r].x=nx;
q1[r].y=ny;
q1[r].dep=temp.dep+1;
flag[nx][ny]=1;
}
}
}
}
void bfs2()
{
f=-1;
r=0;
q2[r].x=1;
q2[r].y=1;
q2[r].dep=0;
vis[1][1]=1;
while(f<r)
{
node temp=q2[++f];
if(temp.x==x1&&temp.y==y1)
{
ans2=temp.dep;
break;
}
for(int i=0;i<12;i++)
{
int nx=x1+dir[i][0];
int ny=y1+dir[i][1];
if(vis[nx][ny]==0)
{
r++;
q2[r].x=nx;
q2[r].y=ny;
q2[r].dep=temp.dep+1;
vis[nx][ny]=1;
}
}
}
}
int main()
{
cin>>x0>>y0>>x1>>y1;
bfs1();
bfs2();
cout<<ans1<<endl<<ans2;
return 0;
}
CPP回复
共 2 条回复,欢迎继续交流。
正在加载回复...