此题非常好!!! 思路:基础取数 dp 的变式。 考虑只能向下走和向右走(很简单) 考虑只能向上走和向右走(很简单) 区别:既可以向上走又可以向下走 所以我们考虑对于每一列,既进行向下的 dp 也进行向上的 dp (具体过程见代码) #include <bits/stdc++.h> using namespace std; #define ll long long #define mem2(p, x) memset(p, x, sizeof(p)) const int N = 1009; int n, m, a[N][N]; ll dp[N][N], fu1[N], fu2[...