聪明的kk --- 搜索超时 二话没说上去搜索 , 果不其然 华丽超时 .  还是用DP吧 .   只用了 4ms   ...

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<queue>
 7 #include<vector>
 8 #include<set>
 9 #include<stack>
10 #include<string>
11 #include<sstream>
12 #include<map>
13 #include<cctype>
14 #include<limits.h>
15 using namespace std;
16 int a[22][22],result,n,m;
17 void DFS(int y,int x,int step)
18 {
19     if(y<0||y>n||x<0||x>m)
20         return;
21     if(y==n&&x==m&&step>result)
22         result=step;
23     DFS(y+1,x,step+a[y+1][x]);
24     DFS(y,x+1,step+a[y][x+1]);
25 }
26 int main()
27 {
28     while(scanf("%d%d",&n,&m)!=EOF)
29     {
30         for(int i=0;i<n;i++)
31             for(int j=0;j<m;j++)
32                 scanf("%d",&a[i][j]);
33         result=INT_MIN;
34         DFS(0,0,a[0][0]);
35         printf("%d
",result);
36     }
37     return 0;
38 }

还是用DP吧 .   只用了 4ms   ...

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<queue>
 7 #include<vector>
 8 #include<set>
 9 #include<stack>
10 #include<string>
11 #include<sstream>
12 #include<map>
13 #include<cctype>
14 #include<limits.h>
15 using namespace std;
16 int dp[22][22],result,n,m;
17 int main()
18 {
19     while(scanf("%d%d",&n,&m)!=EOF)
20     {
21         for(int i=1;i<=n;i++)
22             for(int j=1;j<=m;j++)
23                 scanf("%d",&dp[i][j]);
24         for(int i=1;i<=n;i++)
25             for(int j=1;j<=m;j++)
26             dp[i][j]=dp[i][j]+max(dp[i][j-1],dp[i-1][j]);
27         printf("%d
",dp[n][m]);
28     }
29     return 0;
30 }