这个dp初始值怎么设的
#include <bits/stdc++.h>
using namespace std;
long long n,m,a[1005][1005],f[1005][1005][2];
int main()
{
scanf("%d%d",&n,&m);
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= m;j++)
{
cin >> a[i][j];
}
}
memset(f,-0x3f,sizeof(f));
f[1][0][0] = 0;
for (int j = 1;j <= m;j++)
{
for (int i = 1;i <= n;i++)
{
f[i][j][0] = f[i][j][1] = max(f[i][j - 1][1],f[i][j - 1][0]) + a[i][j];
}
for (int i = 1;i <= n;i++)
{
f[i][j][0] = max(f[i - 1][j][0] + a[i][j],f[i][j][0]);
}
for (int i = n;i >= 1;i--)
{
f[i][j][1] = max(f[i + 1][j][1] + a[i][j],f[i][j][1]);
}
}
cout << max(f[n][m][0],f[n][m][1]);
return 0;
}