代码完全无法运行,可以过编译,找问题
  • 板块灌水区
  • 楼主ARE_hfL3
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/1/1 22:03
  • 上次更新2025/1/2 16:40:38
查看原帖
代码完全无法运行,可以过编译,找问题
1058909
ARE_hfL3楼主2025/1/1 22:03
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,k,d;
int a[1005][1005],step[1005][1005];
int _x_[1000005],_y_[1000005],_c_[1000005];
int bfs(int x,int y)
{
	queue<int>qx,qy;
	qx.push(x);
	qy.push(y);
	step[x][y]=0;
	while(!qx.empty())
	{
		int nx=qx.front(),ny=qy.front();
		qx.pop();
		qy.pop();
		if(a[nx][ny]==1)
			return step[nx][ny];
		if(nx+1<=n&&!step[nx+1][ny]&&nx+1!=x&&ny!=y&&a[nx+1][ny]!=-1)
		{
			step[nx+1][ny]=step[nx][ny]+1;
			qx.push(nx+1);
			qy.push(ny);
		}
		if(nx-1>=1&&!step[nx-1][ny]&&nx-1!=x&&ny!=y&&a[nx-1][ny]!=-1)
		{
			step[nx-1][ny]=step[nx][ny]+1;
			qx.push(nx-1);
			qy.push(ny);
		}
		if(ny+1<=n&&!step[nx][ny+1]&&nx!=x&&ny+1!=y&&a[nx][ny+1]!=-1)
		{
			step[nx][ny+1]=step[nx][ny]+1;
			qx.push(nx);
			qy.push(ny+1);
		}
		if(ny-1>=1&&!step[nx][ny-1]&&nx!=x&&ny-1!=y&&a[nx][ny-1]!=-1)
		{
			step[nx][ny-1]=step[nx][ny]+1;
			qx.push(nx);
			qy.push(ny-1);
		}
	}
}
signed main()
{
	cin>>n>>m>>k>>d;
	int s=0;
	for(int i=1;i<=m;i++)
	{
		int x,y;
		cin>>x>>y;
		a[x][y]=1;
	}
	for(int i=1;i<=k;i++)
		cin>>_x_[i]>>_y_[i]>>_c_[i];
	for(int i=1;i<=d;i++)
	{
		int x,y;
		cin>>x>>y;
		a[x][y]=-1;
	}
	bfs(1,1);
	for(int i=1;i<=k;i++)
		//s+=bfs(_x_[i],_y_[i])*_c_[i];
	cout<<s;
}
2025/1/1 22:03
加载中...