社区讨论
0分求条
P1746离开中山路参与者 2已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @mm1f3f6a
- 此快照首次捕获于
- 2026/02/25 10:30 上周
- 此快照最后确认于
- 2026/02/26 16:30 上周
CPP
#include <bits/stdc++.h>
using namespace std;
int x,y;
int a[1005][1005];
bool vis[1005][1005];
int n,qx,qy,zx,zy,ans=0;
int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
void bfs()
{
if (x==zx&&y==zy)
return;
queue <int> q;
while (!q.empty())
{
int tou=q.front();
q.pop();
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
if (a[i][j]!=1&&!vis[i][j]&&dx[i]+tou>0&&dx[i]+tou<n&&dy[j]>0&&dy[j]<n)
{
x=dx[i]+tou;
y=dy[j]+tou;
ans++;
vis[i][j]=1;
}
}
}
}
}
int main()
{
cin >> n;
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++){
cin >> a[i][j];
if (a[i][j]==1)
{
vis[i][j]=1;
}}}
cin >> qx >> qy >> zx >> zy;
vis[qx][qy]=1;
x=qx,y=qy;
bfs();
cout << ans;
}
回复
共 7 条回复,欢迎继续交流。
正在加载回复...