为什么一半RE一半红
查看原帖
为什么一半RE一半红
1248828
AncientCT楼主2024/11/29 13:46

为什么一半RE一半红

样例也有错

#include<iostream>
#include<vector>
using namespace std;

int m,n;
vector<vector<short> >L;
vector<vector<short> >dp;

void findl(int i,int j)
{
	if(i==0&&j==0)
		return;
	if(L[i][j]==L[i-1][j]+dp[i][j])
	{
		dp[i][j]=-1;
		findl(i-1,j);
	}
	else
	{
		dp[i][j]=-1;
		findl(i,j-1);
	}
	return;
}

int main()
{
	cin>>m>>n;
	L.resize(m);
	for(int i=0,a;i<m;i++)
		for(int j=0;j<n;j++)
		{
			cin>>a;
			L[i].push_back(a);
		}
	dp=L;
	for(int i=1;i<m;i++)
		for(int j=1;j<n;j++)
		{
			L[i][j]+=max(L[i-1][j],L[i][j-1]);
		}
	findl(m-1,n-1);
	for(int i=1;i<m;i++)
		for(int j=1;j<n;j++)
		{
			dp[i][j]+=max(dp[i-1][j],dp[i][j-1]);
		}
	cout<<L[m-1][n-1]<<" "<<dp[m-1][n-1];
	return 0;
}
2024/11/29 13:46
加载中...