社区讨论

90pts球跳

P2960[USACO09OCT] Invasion of the Milkweed G参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mjfoeikr
此快照首次捕获于
2025/12/21 20:00
2 个月前
此快照最后确认于
2025/12/21 20:24
2 个月前
查看原帖
看了90pts的警示后人好像和我这个没关系。
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=105;
int lx,ly,mx,my;
int a[N][N],dis[N][N];
bool vis[N][N];
int ans;
char c;
int px[8]={0,1,0,-1,1,1,-1,-1},py[8]={1,0,-1,0,1,-1,1,-1};
struct node{
	int x,y;
};
queue<node>q;
signed main(){
	cin>>ly>>lx>>mx>>my;
	for(int i=lx;i>=1;i--){
		for(int j=1;j<=ly;j++){
			cin>>c;
			a[i][j]=(c=='*');
		}
	}
	int sx=lx-my+1,sy=mx;
	vis[sx][sy]=true;
	q.push({sx,sy});
	while(!q.empty()){
		int x=q.front().x,y=q.front().y;
		q.pop();
		for(int i=0;i<8;i++){
			int dx=px[i]+x,dy=py[i]+y;
			if(dx<1||dy<1||dx>lx||dy>ly||vis[dx][dy]||a[dx][dy])continue;
			vis[dx][dy]=true;
			dis[dx][dy]=dis[x][y]+1;
			ans=max(ans,dis[dx][dy]);
			q.push({dx,dy});
		}
	}
	cout<<ans;
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...