深夜emo,摸了一发bfs,真想闭关了
作者:互联网
#include<bits/stdc++.h> #define rep(i,x,n) for(int i=x;i<=n;i++) using namespace std; struct node{ int x,y; }; int n; int f[500][500];//记录步长和判重 int g[500][500]; int dx[]={1,0,-1,0},dy[]={0,1,0,-1}; void bfs() { queue<node> q; q.push({1,1}); f[1][1]=1; int x,y; while(!q.empty()) { auto w=q.front(); q.pop(); x=w.x,y=w.y; //cout << x << ' ' << y << '\n'; if(g[x][y]==0x3f3f3f3f) { cout << f[x][y]-1; exit(0); } rep(i,0,3) { int nx=x+dx[i],ny=y+dy[i]; if(!f[nx][ny]&&nx>=1&&ny>=1&&g[nx][ny]>f[x][y]) { q.push({nx,ny}); f[nx][ny]=f[x][y]+1; } } } cout << -1; } int main() { memset(g,0x3f,sizeof g);//初始化地图 cin >> n; rep(i,1,n) { int x,y,t; cin >> x >> y >> t; g[1+x][1+y]=min(t,g[1+x][1+y]); rep(i,0,3) g[1+x+dx[i]][1+y+dy[i]]=min(t,g[1+x+dx[i]][1+y+dy[i]]);//设置好时间 } bfs(); return 0; }
标签:nx,cout,int,emo,bfs,ny,闭关,rep 来源: https://www.cnblogs.com/hssliuscat/p/16115133.html