dfs(续做)

1.混境之地5
cpp 复制代码
#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.小怂爱水洼
cpp 复制代码
#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;
}
相关推荐
寂静山林2 小时前
UVa 10228 A Star not a Tree?
算法
Neverfadeaway3 小时前
【C语言】深入理解函数指针数组应用(4)
c语言·开发语言·算法·回调函数·转移表·c语言实现计算器
Madison-No73 小时前
【C++】探秘vector的底层实现
java·c++·算法
Swift社区3 小时前
LeetCode 401 - 二进制手表
算法·leetcode·ssh
派大星爱吃猫3 小时前
顺序表算法题(LeetCode)
算法·leetcode·职场和发展
liu****4 小时前
8.list的模拟实现
linux·数据结构·c++·算法·list
地平线开发者4 小时前
征程 6 | 征程 6 工具链如何支持 Matmul/Conv 双 int16 输入量化?
算法·自动驾驶
程序员大雄学编程5 小时前
「深度学习笔记4」深度学习优化算法完全指南:从梯度下降到Adam的实战详解
笔记·深度学习·算法·机器学习
小O的算法实验室6 小时前
2022年ASOC SCI2区TOP,基于竞争与合作策略的金字塔粒子群算法PPSO,深度解析+性能实测,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
南莺莺6 小时前
邻接矩阵的基本操作
数据结构·算法··邻接矩阵