WA了一个点求救!!
查看原帖
WA了一个点求救!!
303775
FeliksFun楼主2020/10/31 21:43
#include<iostream>
#include<cstring>
using namespace std;
int fz[16][16],M,dp[32][16][16];
int main()
{
	cin>>M;
	int x,y,ff;
	while(1){
		cin>>x>>y>>ff;
		if(!x) break;
		else{
			fz[x][y]=ff;
		}
	}
	memset(dp,-1,sizeof(dp));
    dp[2][1][1]=fz[1][1];
	for(int s=3;s<M+M;s++){
		for(int i=1;i<M;i++){
			for(int j=i+1;j<=M;j++){	dp[s][i][j]=max(max(dp[s-1][i][j],dp[s-1][i-1][j]),max(dp[s-1][i][j-1],dp[s-1][i-1][j-1]));
				if(dp[s][i][j]==-1) continue;
				dp[s][i][j]+=(fz[s-i][i]+fz[s-j][j]);
			}
		}
	}
	cout<<dp[M+M-1][M-1][M];
	return 0;
}

思路来自之前做的传纸条,求教!

2020/10/31 21:43
加载中...