```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,n,i,j,k,dp[205][205]={0},a[205][205],maxl=0;
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
dp[m][n/2+1]=a[m][n/2+1];
dp[m][n/2]=a[m][n/2];
dp[m][n/2+2]=a[m][n/2+2];
for(i=m-1;i>=1;i--)
for(j=1;j<=n;j++)
dp[i][j]=max(max(dp[i+1][j],dp[i+1][j-1]),dp[i+1][j+1])+a[i][j];
for(i=1;i<=n;i++)
maxl=max(maxl,dp[1][i]);
cout<<maxl;
}
```
by Muskmelon @ 2019-02-10 16:38:35
是不是边界问题?
by 铃宕 @ 2019-02-10 16:51:45
其他的应该赋值为-inf否则可能走出非法道路
比如这样
1 1 1 1 1
1000 1 1 1 1
1 1 1 1 1
(1000显然走不到但结果出1002)
by a2956331800 @ 2019-02-10 16:54:40
还有外面一圈也要赋
by a2956331800 @ 2019-02-10 16:56:25
等会例子好像不对应该是
1 1 1 1 1 1 1
1000 1 1 1 1 1 1
1 1 1 1 1 1 1
by a2956331800 @ 2019-02-10 16:58:15
应该出3然后你的程序出1001
by a2956331800 @ 2019-02-10 16:58:43
@[a2956331800](/space/show?uid=9517)
我把代码改了,可是还是过不去。(P:这样处理边界没问题吧)
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,n,i,j,k,dp[205][205],a[205][205],maxl=0;
int inf=0x3f3f3f3f;
memset(dp,-inf,sizeof(dp));
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cin>>a[i][j];
dp[i][j]=0;
}
dp[m][n/2+1]=a[m][n/2+1];
dp[m][n/2]=a[m][n/2];
dp[m][n/2+2]=a[m][n/2+2];
for(i=m-1;i>=1;i--)
for(j=1;j<=n;j++)
dp[i][j]=max(max(dp[i+1][j],dp[i+1][j-1]),dp[i+1][j+1])+a[i][j];
for(i=1;i<=n;i++)
maxl=max(maxl,dp[1][i]);
cout<<maxl;
}
```
by Muskmelon @ 2019-02-10 20:18:13
@[KINGSCANF](/space/show?uid=81591)
这样处理边界了,可是还是过不了
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,n,i,j,k,dp[205][205],a[205][205],maxl=0;
int inf=0x3f3f3f3f;
memset(dp,-inf,sizeof(dp));
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cin>>a[i][j];
dp[i][j]=0;
}
dp[m][n/2+1]=a[m][n/2+1];
dp[m][n/2]=a[m][n/2];
dp[m][n/2+2]=a[m][n/2+2];
for(i=m-1;i>=1;i--)
for(j=1;j<=n;j++)
dp[i][j]=max(max(dp[i+1][j],dp[i+1][j-1]),dp[i+1][j+1])+a[i][j];
for(i=1;i<=n;i++)
maxl=max(maxl,dp[1][i]);
cout<<maxl;
}
```
by Muskmelon @ 2019-02-10 20:19:06
额
by 铃宕 @ 2019-02-10 20:20:05
@[liuyaliu](/space/show?uid=170566) 不是那个意思,是把第一行不能走的位置和图外面一圈($dp[i][0],dp[i][n+1],dp[0][i],dp[m+1][i]$)赋值为0x7fffffff(inf)
by a2956331800 @ 2019-02-11 14:39:45