蒟蒻求助下写dfs时候里面的每一种路径的cnt怎么存
查看原帖
蒟蒻求助下写dfs时候里面的每一种路径的cnt怎么存
570842
FPXS11GO楼主2022/9/28 17:38

没写完的伪代码,但是自己实在在写dfs的时候不会存里面这个记录当前最优解的cnt了,每次进行下一步新dfs的时候都会重新记录为0,希望大佬求解

#include<bits/stdc++.h>
using namespace std;
int n,m;
int dp[1005][1005],a[1005][1005];
bool vis[1005][1005];
const int dx[3]={0,1,-1};
const int dy[3]={1,0,0};
long long ans;
void dfs(int x,int y){
	long long cnt=0;
	for(int i=0;i<3;i++)
	{	int nx=x+dx[i];
		int ny=y+dy[i];
		if(nx>=1&&ny>=1&&nx<=n&&ny<=m&&!vis[nx][ny])
		{	cnt+=a[x][y];
			if(x==n&&y==m)continue;
			vis[nx][ny]=1;
			dfs(nx,ny);
			vis[nx][ny]=0;
		}
			
	}
	if(ans<cnt)ans=cnt;
}
int main()
{	cin>>n>>m;
    for(int i=1;i<=n;i++)
    	for(int j=1;j<=m;j+=)
    	{
    		cin>>a[i][j];
    		dp[i][j]=a[i][j];	
    	}
	dfs(1,1);
	cout<<ans<<ednl;

2022/9/28 17:38
加载中...