写了个c++代码,wa了4个,求调
查看原帖
写了个c++代码,wa了4个,求调
757259
_L_i_n_k_楼主2024/2/23 19:19
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[55][55];
int dp[110][55][55];
int main(){
	scanf("%d%d",&n,&m);
	int q,p,t;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			scanf("%d",&a[i][j]);
		}
	} 
	dp[1][1][1]=a[1][1];
	for(int i=2;i<=m;i++){
		for(int x=1;x<=min(i,min(n,m));x++){
			int q=x,p=i-x+1;
			for(int y=1;y<=min(i,min(n,m));y++){
				if(x==y){
					continue;
//					dp[i][x][y]=max(max(dp[i-1][x-1][y-1],dp[i-1][x-1][y]),max(dp[i-1][x][y-1],dp[i-1][x][y]))+a[q][p];
				}else{
					int q2=y,p2=i-y+1;
					dp[i][x][y]=max(max(dp[i-1][x-1][y-1],dp[i-1][x-1][y]),max(dp[i-1][x][y-1],dp[i-1][x][y]))+a[q][p]+a[q2][p2];
//					printf("%d %d %d %d %d\n",q,p,q2,p2,dp[i][x][y]);
				}
				
			}
		}
	}
	for(int i=m+1;i<=n+m-1;i++){
		for(int x=1;x<=min(n-i+m,m);x++){//i+1-(n-x+1)=i+1-n+x-1
			int q=i-n+x,p=n-x+1;
			for(int y=1;y<=min(n-i+m,m);y++){
				if(x==y){
					if(i==n+m-1) dp[i][x][y]=max(max(dp[i-1][x+1][y+1],dp[i-1][x+1][y]),max(dp[i-1][x][y+1],dp[i-1][x][y]))+a[q][p];
					continue;
				}else{
					int q2=i-n+y,p2=n-y+1;
					dp[i][x][y]=max(max(dp[i-1][x+1][y+1],dp[i-1][x+1][y]),max(dp[i-1][x][y+1],dp[i-1][x][y]))+a[q][p]+a[q2][p2];
//					printf("%d %d %d %d %d\n",q,p,q2,p2,dp[i][x][y]);
				}
			}
		}
	}
	printf("%d\n",dp[n+m-1][1][1]);
	return 0;
} 

错误网址

2024/2/23 19:19
加载中...