1 条题解

  • 0
    @ 2025-2-14 21:20:41

    C++ :

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int N = 55;
    int a[N][N],f[2*N][N][N];
    
    int main(){
    	int m,n;
    	cin>>m>>n;
    	for (int i=1; i<=m; i++)
    		for (int j=1; j<=n; j++) cin>>a[i][j];
    	for (int k=3; k<m+n; k++)
    		for (int x1=1; x1<m; x1++)
    			for (int x2=x1+1; x2<=m; x2++)
    				if (k-x1>1 && k-x1<=n && k-x2>=1 && k-x2<n)
    				{
    					f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1][x2]);
    					f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1][x2-1]);
    					f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1-1][x2]);
    					f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1-1][x2-1]);
    					f[k][x1][x2]+=a[x1][k-x1]+a[x2][k-x2];
    				}
    	cout<<f[m+n-1][m-1][m]<<endl;
    	return 0;
    }
    

    Pascal :

    var
      f:array[-50..101,-50..51,-50..51]of longint;
      a:array[-100..100,-100..100]of longint;
      n,i,j,k,m,maxn,s,minn,xxx:longint;
    function max(a,b:longint):longint;
     begin
    if a>b then max:=a else max:=b
    end;
    begin
    {assign(input,'message.in');   reset(input);
     assign9output,'message.out'); rewrite(output);}
      readln(n,m);
      for i:=1 to n do
       for j:=1 to m do read(a[i,j]);      fillchar(f,sizeof(f),0);
      xxx:=m+n-2;
      for k:=2 to xxx do
       begin
    
         for i:=1 to n do
          for j:=i+1 to n do
            begin
              if abs(j-i) > 1 then
               begin
                  f[k,i,j]:=max(f[k-1,i,j],f[k-1,i,j-1]);
                  f[k,i,j]:=max(f[k,i,j],f[k-1,i-1,j]);
                  f[k,i,j]:=max(f[k,i,j],f[k-1,i-1,j-1]);
                  inc(f[k,i,j],a[i,k+1-i]+a[j,k+1-j]);
               end else
    
               begin
                 f[k,i,j]:=max(f[k-1,i,j],f[k-1,i-1,j-1]);
                 f[k,i,j]:=max(f[k,i,j],f[k-1,i-1,j]);
                  inc(f[k,i,j],a[i,k+1-i]+a[j,k+1-j]);
               end;
    
            end;
       end;
      writeln(f[xxx,n-1,n]);
    {close(input); rewrite(output);}
    end.
    
    
    • 1

    信息

    ID
    818
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者