c++木瓜地

Bessie不小心游荡出Farmer John的田地,而走进了相邻的农民的地。她举起一个木瓜,木瓜对奶牛来说可是不可多得得美味。这个木瓜林像一般的威斯康星州的田地一样被分割成一个 R行C列的网格(1 < = R < = 40, 1 < = C < = 40)。Bessie可以从一个格沿著一条跟X轴或 Y轴平行的直线走到邻接的令一个格。Bessie发现一开始她自己在木瓜林的(1,1),也就是第 一行第一列慢悠悠地咀嚼著木瓜。 Bessie总是用她最信赖地双筒望远镜去数每一个邻接的格的低掛著的木瓜的数目。然后她就游荡到那个有最多没有被吃掉的木瓜的邻接的格子(保证这样的格子只有一个)。 按照这种移动方法,最终Bessie总是会在(R,C)停止然后吃掉那裡的木瓜。 给定这个木瓜林的大小及每个格的木瓜数F_ij(1 < = F_ij < = 100), 要求Bessie一共吃了多少个木瓜。

输入格式

第一行: 两个空格隔开的整数R和C. * 第2到R+1行: 第i+1行有C个空格隔开的整数,表示第i行的每个格的水果数。也就是F_i1, F_i2, ..., F_iC.

输出格式

第一行: 一个单独的整数,表示到Bessie吃完右下角(R,C)的木瓜回到牛棚的时候為止, 一共在木瓜林吃掉了多少个木瓜。

输入/输出例子1

输入:

3 4

3 3 4 5

4 5 3 2

1 7 4 2

输出:

39

简单:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[50][50],ans;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>a[i][j];
    int x=1,y=1;
    while(1)
    {
        ans+=a[x][y];
        a[x][y]=0;
        if(x==n&&y==m)break;
        int up=a[x-1][y],down=a[x+1][y];
        int left=a[x][y-1],right=a[x][y+1];
        int tmp=max(max(up,down),max(left,right));
        if(tmp==up) x--;
        if(tmp==down) x++;
        if(tmp==left) y--;
        if(tmp==right) y++;
    }
    cout<<ans;
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子小院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值