有没有人用递推写法???

P1004 [NOIP2000 提高组] 方格取数

```cpp #include <cstdio> #define rr register using namespace std; inline int max(int a,int b){ return a>b? a:b; } inline int cmp(int a,int b,int c,int d){ return max(max(a,b),max(c,d)); } inline int min(int a,int b){ return a<b?a:b; } int a[51][51]; int f[51][51][51]; int n,x,y,z; int main(){ scanf("%d%d%d%d",&n,&x,&y,&z);; while(x && y && z){ a[x][y] = z; scanf("%d%d%d",&x,&y,&z); } f[1][1][1] = a[1][1]; for(int s = 2;s <= 2*n-1;s++){ for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++){ f[s][i][j] = a[i][s-i+1]+cmp(f[s-1][i][j],f[s-1][i-1][j],f[s-1][i][j-1],f[s-1][i-1][j-1]); if(i != j){ f[s][i][j] += a[j][s-j+1]; } } } } printf("%d",f[2*n-1][n][n]); return 0; } ``` @[ILMR_LBN](/user/865676)
by NaHCO3_tht @ 2023-11-10 13:42:24


|