草原坝上滑梯

原创 2016年08月28日 22:25:45

草原坝上滑梯
只能从上下左右侧移动
输入:行数R 列数C
输出:最长区域的长度
样例:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
输出:25

#include <iostream>
#include <algorithm>

using namespace std;

int r;//行
int c;//列
int a[1000][100];//输入矩阵
int result[1000][1000];//输出矩阵

//递归思想:分别求出上下左右方向的最大长度
int maxLength(int  i, int j)
{
    int left = j - 1;
    int right = j + 1;
    int high = i - 1;
    int low = i + 1;

    int left_value;
    int right_value;
    int high_value;
    int low_value;

    //左侧最大长度
    if (left >= 0 && a[i][left] < a[i][j])
        left_value = maxLength(i, left) + 1;
    else
        left_value = 0;

    //右侧最大长度
    if (right <= c - 1 && a[i][right] < a[i][j])
        right_value = maxLength(i, right) + 1;
    else
        right_value = 0;

    //上侧最大长度
    if (high >= 0 && a[high][j] < a[i][j])
        high_value = maxLength(high, j) + 1;
    else
        high_value = 0;

    //下侧最大长度
    if (low <= r - 1 && a[low][j] < a[i][j])
        low_value = maxLength(low, j) + 1;
    else
        low_value = 0;

    int max1 = max(high_value, low_value);
    int max2 = max(left_value, right_value);
    return max(max1, max2);
}

int main()
{
    while (cin >> r >> c)
    {
        //初始化矩阵
        for (int i = 0; i < r; i++)
            for (int j = 0; j < c; j++)
                cin >> a[i][j];
        //计算每一个位置的最大长度
        for (int i = 0; i < r; i++)
            for (int j = 0; j < c; j++)
                result[i][j] = maxLength(i, j);
        //寻找所有位置中最大的长度
        int maxLen = 0;
        for (int i = 0; i < r; i++)
        {
            for (int j = 0; j < c; j++)
                if (result[i][j] > maxLen)
                    maxLen = result[i][j];
        }
        cout << maxLen + 1 << endl;
    }

    system("pause");
    return 0;
}
版权声明:更多请参考:http://blog.csdn.net/yangquanhui1991,我们一起每天进步一点点!

承德旅游景点大全-草原坝上-始于足下

美丽的草原,美丽的风景,美丽的身影,奔腾的骏马,驱赶的牧人,热情的人民,不一样的风土人情,不一样的传统美食,只属于草原的传统服装,在这里只有你想不到的快乐,没有你享受不到的快乐。 坝上草原在五月中旬...

【时事摘抄】(随拍)直击干旱洞庭湖底变草原风光

之前有媒体报导称长江中下游大面积干旱已致洪湖干涸、潘阳湖底成了大草原,实际上作为中国第二大淡水湖的洞庭湖同样为干旱所困扰,水面面积从250多万亩锐减致50多万亩。目前已至正常年份的洞庭湖汛期,本应该烟...

C++写的滑滑梯小游戏

  • 2012年04月17日 01:51
  • 3KB
  • 下载

acdream oj 1101 瑶瑶想要玩滑梯

瑶瑶想要玩滑梯 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 512000/256000 KB (Java/Others) S...

ACdream 1101 瑶瑶想要玩滑梯 (线段树)(区间替换+区间查询LCIS)

题目链接: ACdream 1101题意: 给你一个区间,每次修改可以修改一段区间的值,也可以询问一个区间,问你这个区间中(严格上升) 最长连续上升的列长度(LCIS) (LCIS)有多长?题解...

余额宝收益坐滑梯连续下滑19天 或降至年化3%-4%

拥有8100万宝粉的余额宝,一举一动都成为关注的焦点。最新被热议的话题是,三大国有商业银行拒绝与余额宝等货币基金进行协议存款交易,而" 宝宝们"的收益亦坐上"滑滑梯"--3月2日,余额宝7日年化收益率...

new与malloc比较,QQ农场与大草原?

前几天看到微信群里有人在讨论new与malloc的不同之处,看到有人说malloc不如new,细细看他所列举的为什么new比malloc好的原因,感觉很有道理,但是转念一想,突然间我又觉得语言这种东西...

ACdream 1101 瑶瑶想要玩滑梯

没想到线段树的基本用法这么长时间没写了还没有忘,1A的感觉还是很爽的。 题目大意: 中文题,点此查看题目。 解题思路: 线段树的区间更新与查询。 lazy标记的使用。 当需要返回区...

ACDream 1101 瑶瑶想要玩滑梯 线段树

瑶瑶想要玩滑梯 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 512000/256000 KB (Java/Others) ...

青青草原wifi

  • 2015年05月10日 09:15
  • 1.57MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:草原坝上滑梯
举报原因:
原因补充:

(最多只允许输入30个字)