样例都没过
查看原帖
样例都没过
478528
SunXiaoping楼主2021/3/7 13:11
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
inline void write(int x)
{
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
int T,n,m,a[101][101],dp[2][101][101];
int main()
{
	T=read();
	while(T--)
	{
		memset(a,0,sizeof(a));
		memset(dp,0,sizeof(dp));
		n=read();
		m=read();
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				a[i][j]=read();
			}
		}
		dp[1][1][1]=a[1][1];
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				dp[1][i][j]=max(dp[0][i-1][j],dp[0][i][j-1])+a[i][j];
				dp[0][i][j]=max(dp[1][i-1][j],dp[1][i][j-1]);
			}
		}
		write(max(dp[1][n][m],dp[0][n][m]));
		puts("");
	}
}
2021/3/7 13:11
加载中...