2 条题解

  • 0
    @ 2024-11-16 10:31:51
    #include<bits/stdc++.h>
    #define r(a) scanf("%d",&a)
    #define f(i,l,r) for(int i=l;i<=r;i++)
    #define F(i,r,l) for(int i=r;i>=l;i--)
    using namespace std;
    int n,m,a[105][105],f[105][105];
    int main(){
    	r(n);r(m);
    	f(i,1,n)f(j,1,m)r(a[i][j]);
    	f(i,1,n)f(j,1,m)f(k,-2,2){
    		if(k+j>=1&&k+j<=m){
    			f[i+1][j]=max(f[i+1][j],f[i][k+j]+a[i][k+j]);
    		}
    	}
    	printf("%d",f[n+1][m/2+1]);
    	return 0;
    }
    
    • -2
      @ 2022-5-21 20:58:46

      #include<bits/stdc++.h> using namespace std; long long i,j,dy[10]={-2,-1,0,1,2},a[110][110],f[110][110],n,m,ma=-1e9; int main() { cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>a[i][j]; for(i=1;i<=m;i++) f[1][i]=a[1][i]; for(i=2;i<=n;i++) for(j=1;j<=m;j++) f[i][j]=max(f[i-1][j-2],max(f[i-1][j-1],max(f[i-1][j],max(f[i-1][j+1],f[i-1][j+2]))))+a[i][j];//本项+当前5项的最大值(用max()函数求) j=m/2+1; cout<<max(f[n][j-2],max(f[n][j-1],max(f[n][j],max(f[n][j+1],f[n][j+2])))); return 0; }

      • 1

      信息

      ID
      93
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      (无)
      递交数
      87
      已通过
      39
      上传者