本文共 1578 字,大约阅读时间需要 5 分钟。
13 89 10 10 10 10 -10 10 1010 -11 -1 0 2 11 10 -20-11 -11 10 11 2 10 -10 -10
52
#include#include #include #include #include #include using namespace std;const int N=20+5;const int M=1000+5;int n,m;int num[N][M];int dp[N][M];//上面下来的,左边倍数来的 inline int max(int a,int b){ if(a>b) return a; return b;}int main(){ int t,i,j,k,x,y,up,le; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=m;j++){ scanf("%d",&num[i][j]); dp[i][j]=0; } dp[1][1]=num[1][1]; //这里wa了 刚开始要赋值 for(i=1;i<=n;i++) for(j=1;j<=m;j++){ if(i==1&&j==1) continue; x=i-1;// 上面的横坐标 y=j; if(x<1) up=-99999999; else up=dp[x][y]; x=i; y=j-1; if(y<1) le=-99999999; else le=dp[x][y]; for(k=1;k
转载地址:http://ufmvi.baihongyu.com/