1 条题解
-
1
按他说的做即可。
#include <bits/stdc++.h> using namespace std; int r,c,x=1,y=1,ans; int a[45][45]; const int dx[]={0,1,0,-1}; const int dy[]={1,0,-1,0}; int main(){ cin>>r>>c; for (int i=1;i<=r;i++){ for (int j=1;j<=c;j++){ cin>>a[i][j]; } } while (x<r||y<c){//类似深搜 ans+=a[x][y]; a[x][y]=0; int Nx,Ny,Max=-1; for (int i=0;i<4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if (nx<1||nx>r||ny<1||ny>c){ continue; } if (a[nx][ny]>Max){//确定最终方向 Max=a[nx][ny]; Nx=nx; Ny=ny; } } x=Nx,y=Ny;//移动 } cout<<ans+a[r][c];//最后一格没有统计,需要加上 return 0; }
- 1
信息
- ID
- 1038
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 26
- 已通过
- 20
- 上传者