黎明的歌声 @ 2020-08-12 21:26:29
#include <iostream>
#include <cstring>
using namespace std;
long a[105][105],n,ans;
bool vis[105][105];
const int dx[3]={0,-1,1};
const int dy[3]={-1,0,0};
void dfs(long lx,long ly,long sum)
{
if(ly==n-1)
{
if(ans<sum) ans=sum;
return ;
}
for(int i=0;i<3;i++)
{
long nx=lx+dx[i];
long ny=ly+dy[i];
if(vis[nx][ny]==true)
{
vis[nx][ny]=false;
dfs(nx,ny,sum+a[nx][ny]);
vis[nx][ny]=true;
}
}
}
int main()
{
cin>>n;
memset(vis,false,sizeof(vis));
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
cin>>a[i][j];
vis[i][j]=true;
}
}
dfs(0,0,0);
cout<<ans;
return 0;
}
俺地搜索哪里错,求帮助!
by Implicit @ 2020-08-12 21:28:11
@黎明的歌声 诶你往