只会输出-1???
查看原帖
只会输出-1???
1505141
XIAOm_YYDS楼主2025/7/29 12:08

似乎是判断条件有误

#include<bits/stdc++.h>
using namespace std;
struct node
{
	int x,y,w;
};
int dx[]={1,-1,0,0,0};
int dy[]={0,0,1,-1,0};
int b[306][306],l,r,t,m;
bool vis[306][306];
void bfs(){	
	queue<node>q;
	vis[0][0]=1,q.push({0,0,0});
	while(!q.empty()){
		node now=q.front();q.pop();
		for(int i=0;i<4;i++){
			int u=now.x+dx[i],v=now.y+dy[i];
			if((++now.w<b[u][v]||!b[u][v])&&!vis[u][v]&&u>=0&&v>=0)
				if(!b[u][v])
					cout<<now.w,exit(0);
				else
					q.push({u,v,now.w}),vis[u][v]=1;	
		}
	}
}
int main(){
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>l>>r>>t;
		for(int j=0;j<5;j++){
			int u=l+dx[j],v=r+dy[j];
			if(u>=0&&v>=0)
				if(b[u][v])
					b[u][v]=min(b[u][v],t);
				else
					b[u][v]=t;
		}
	}
	bfs();
	cout<<-1;
	return 0;
}
2025/7/29 12:08
加载中...