William_qwq @ 2021-10-21 19:33:01
程序如下
#include<bits/stdc++.h>
using namespace std;
int a[1010][1010][1010],vis[1010][1010],s[1010][1010];
struct noid
{
int x,y,dist;
};
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
bool in(int x,int y)
{
return x>=0&&y>=0;
}
queue<noid> q;
int bfs()
{
vis[0][0]=1;
q.push((noid){0,0,0});
while(!q.empty())
{
int i,j;
int posx=q.front().x;
int posy=q.front().y;
int posd=q.front().dist;
q.pop();
if(s[posx][posy]==0)
{
return posd;
}
for(i=0;i<4;i++)
{
int nx=posx+dx[i];
int ny=posy+dy[i];
if(!in(nx,ny)||vis[nx][ny]) continue;
bool flg=1;
for(j=1;j<=posd+1;j++)
{
if(a[j][nx][ny]) flg=0;
}
if(flg=1)
{
vis[nx][ny]=1;
q.push((noid){nx,ny,posd+1});
}
}
}
return -1;
}
int main()
{
int n,i,j;
cin>>n;
for(i=1;i<=n;i++)
{
int x,y,t;
cin>>x>>y>>t;
a[t][x][y]=1;
s[x][y]=1;
for(j=0;j<4;j++)
{
if(in(x+dx[i],y+dy[i]))
{
a[t][x+dx[i]][y+dy[i]]=1;
s[x+dx[i]][y+dy[i]]=1;
}
}
}
bfs();
return 0;
}
我点提交代码后莫名其妙的出现了: C:\Users\86130\Desktop\c++\collect2.exe [Error] ld returned 1 exit status
by ud2_ @ 2021-10-21 19:35:00
检查一下是否真的需要 4 GB 大的数组。
by black_trees @ 2021-10-21 19:35:37
@辛其易123 a
开 1010*1010*1010
确定不会有事? /qd
by ______zzy @ 2021-10-21 19:35:40
你没关掉之前运行的程序,或者说之前的程序没运行完
by William_qwq @ 2021-10-21 19:44:03
我确定关了其他程序,但她还是ce
by DynamicProb @ 2021-10-29 17:41:49
@辛其易123 你打开任务管理器(ctrl+shift+esc)看看有没有id.exe这个,有的话结束掉