社区讨论

求助P1746

P1746离开中山路参与者 2已保存回复 8

讨论操作

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

当前回复
8 条
当前快照
1 份
快照标识符
@lo8l535a
此快照首次捕获于
2023/10/27 20:24
2 年前
此快照最后确认于
2023/10/27 20:24
2 年前
查看原帖
我用的DFS,但不知道那里错了,答案不对,求改正
CPP
#include<cstdio>
#include<iostream>
#include<cstring>
#include<stack>
#include<queue>
#include<vector>
#include<cmath>
#include<map>
#include<algorithm>
#define QWQ puts("QWQ");
#define ll long long
#define MAXN 100010
using namespace std;
ll n,ha,la,hb,lb,j,ans[10000];
string a[200];
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
void dfs(int idx,int idy){
	j++;
	for(int i=0;i<4;i++){
		int x=idx+dx[i];
		int y=idy+dy[i];
		if(x<=0||x>n||y<=0||y>n||a[x][y]=='2'||a[x][y]=='1')continue;
		if(a[x][y]=='0'){
			ans[j]++;
			a[x][y]='2';
			dfs(x,y);
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	cin>>ha>>la>>hb>>lb;
	a[ha][la]='2';
	dfs(ha,la);
	sort(ans,ans+j);
	cout<<ans[1];
	return 0;
}

回复

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

正在加载回复...