社区讨论
蒟蒻求救!
P1747好奇怪的游戏参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mi6wv7jv
- 此快照首次捕获于
- 2025/11/20 12:08 4 个月前
- 此快照最后确认于
- 2025/11/20 12:08 4 个月前
求大神解释为什么会90分
第二个点一直wa
C#include<bits/stdc++.h>
#define Fr(i,a,b) for(int i=(a);i<=(int)(b);++i)
#define Dr(i,a,b) for(int i=(a);i>=(int)(b);--i)
using namespace std;
#define Inf 0x3f3f3f3f
#define M 105
int x,y;
int mv[12][2]={{-1,2},{-1,-2},{1,-2},{1,-2},{2,2},{-2,-2},{2,-2},{-2,2},{2,1},{2,-1},{-2,1},{-2,-1}};
struct node{
int stp,x,y;
};
bool vis[55][55];
int solve(int ax,int ay){
memset(vis,0,sizeof(vis));
queue<node>Q;
while(!Q.empty())Q.pop();
if(ax==1&&ay==1)return 0;
Q.push((node){0,ax,ay});
vis[ax][ay]=1;
while(!Q.empty()){
node now=Q.front();
Q.pop();
if(now.x==1&&now.y==1)return now.stp;
Fr(i,0,11){
node nxt;
nxt.x=now.x+mv[i][0],nxt.y=now.y+mv[i][1],nxt.stp=now.stp+1;
if(nxt.x<1||nxt.y<1||nxt.x>50||nxt.y>50)continue;
if(vis[nxt.x][nxt.y])continue;
vis[nxt.x][nxt.y]=1;
Q.push(nxt);
}
}
return 0;
}
int main() {
scanf("%d %d",&x,&y);
cout<<solve(x,y)<<endl;
scanf("%d %d",&x,&y);
cout<<solve(x,y)<<endl;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...