1 条题解
-
0
C :
#include<stdio.h> #define max(a,b) (a>b?a:b) int m,n; int a[110][110]; int main() { scanf("%d %d",&m,&n); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) scanf("%d",&a[i][j]); for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) a[i][j]=max(a[i-1][j],a[i][j-1])+a[i][j]; printf("%d",a[m][n]); return 0; }
C++ :
#include<iostream> #include<cstring> using namespace std; int max(int a,int b){ if(a>b) return a; else return b; } int main(){ int n;//组数 int b[101][101];//花生地中的花生数 //初始化花生地 memset(b,0,sizeof(b)); int x,y;//花生地的行列 cin>>x>>y;//读入花生地的行列 //读入每块地种多少花生 //这里i和j从1开始,为的是下面判断i-1,j-1的时候边界值省得特殊处理 for(int i=1;i<=x;i++){ for(int j=1;j<=y;j++){ cin>>b[i][j]; } } //第推找最大值 for(int i=1;i<=x;i++){ for(int j=1;j<=y;j++){ //从上面过来划算,还是从左边过来划算 b[i][j]+=max(b[i-1][j],b[i][j-1]); } } cout<<b[x][y]; }
Python :
sr=input().split() m=int(sr[0]) n=int(sr[1]) a=[[0 for i in range(n)] for j in range(m)] s=[[0 for i in range(n)] for j in range(m)] for i in range(m): sr=input().split() for j in range(n): a[i][j]=int(sr[j]) for i in range(m): for j in range(n): if(i>0 and j>0): s[i][j]=a[i][j]+max(s[i-1][j],s[i][j-1]) elif(i>0): s[i][0]=a[i][0]+s[i-1][0] elif(j>0): s[0][j]=a[0][j]+s[0][j-1] else: s[0][0]=a[0][0] print(s[m-1][n-1])
- 1
信息
- ID
- 2195
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者