欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > dfs(续做)

dfs(续做)

2025/6/7 7:04:29 来源:https://blog.csdn.net/2301_77869606/article/details/140882008  浏览:    关键词:dfs(续做)
1.混境之地5
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int dx[4]= {0,1,0,-1};
const int dy[4]= {1,0,-1,0};
int n,m,k,a,b,c,d,sign=0;
int h[1010][1010],visit[1010][1010];
void dfs(int x,int y,bool used)
{if(x==c&&y==d){sign++;return;}if(x<1||y<1||x>n||y>m||visit[x][y]){return;}for(int i=0; i<4; i++){int nx=x+dx[i];int ny=y+dy[i];if(h[nx][ny]<=h[x][y]){dfs(nx,ny,used);}else if(!used&&h[nx][ny]<=h[x][y]+k){dfs(nx,ny,true);}}
}
int main()
{memset(visit,0,sizeof(visit));cin>>n>>m>>k;cin>>a>>b>>c>>d;for(int i=1; i<=n; i++){for(int j=1; j<=m; j++){cin>>h[i][j];}}dfs(a,b,false);if(sign){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}return 0;
}
2.小怂爱水洼
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int dx[4]= {0,1,0,-1};
const int dy[4]= {1,0,-1,0};
ll n,m,sum=0,current_sum=0;
int a[110][110],visit[110][110];
void dfs(int x,int y)
{if(x<1||y<1||x>n||y>m){return;}if(visit[x][y]==1||a[x][y]==0){return;}current_sum+=a[x][y];visit[x][y]=1; for(int i=0; i<4; i++){int nx=dx[i]+x;int ny=dy[i]+y;dfs(nx,ny);	}
}
int main()
{cin>>n>>m;for(int i=1; i<=n; i++)//索引从1开始,保证nx,ny不会访问到非法地址 {for(int j=1; j<=m; j++){cin>>a[i][j];}}memset(visit,0,sizeof(visit));for(int i=1; i<=n; i++){for(int j=1; j<=m; j++){current_sum=0;if(a[i][j]>0&&visit[i][j]!=1){dfs(i,j);sum=max(sum,current_sum);}}}cout<<sum<<endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词