滑雪(蓝桥模拟赛的题)

简介: 滑雪(蓝桥模拟赛的题)

题目描述:

输出格式

输出一个整数,表示可完成的最长滑雪长度。

数据范围

1≤R,C≤300

0≤矩阵中整数≤10000

输入样例:
5 5
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>
#include <cstring> 
using namespace std;
const int N = 310;
int f[N][N]; //状态数组,表示从i,j开始滑能滑倒的所有距离中的最大值
int h[N][N]; //滑雪场
int n,m;
int st[N][N]; //该点是否搜索到
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, -1, 1};
int dfs(int x, int y)
{
    //已经搜索了,直接返回f[x][y]这个最大值
    if (st[x][y])   return f[x][y]; 
    //否则置为该点已经搜索
    st[x][y] = 1;
    f[x][y] = 1;  //自己这个点就是一步  
    for (int i = 0; i < 4; i++)
    {
        int nx = x + dx[i];int ny = y + dy[i];
        if (nx < 1 || nx > n || ny < 1 || ny > m) continue;
        if (h[nx][ny] >= h[x][y])    continue;
        f[x][y] = max(f[x][y],dfs(nx,ny) + 1);
    }
    return f[x][y];
}
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            cin >> h[i][j];
    int res = 0;
    //暴搜所有点如果一次可以到所有点根本一次搜索即可
    //这道题可以看成一个非联通图 从一个点无所搜到所有点,只能搜到部分点,搜到的部分点一定是最大值
    //因为 从1个点开始上下左右走的所有路径都是固定的,在第一此搜索中就会把从f[1][1]能搜到的所有点的f[i][j]都找出来
    //因为路径是固定的,所以搜过的点不需要在 重复搜索
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            res = max(res,dfs(i,j));
    cout  << res;
}
目录
相关文章
|
6月前
|
存储 人工智能 测试技术
2020年第十一届蓝桥杯模拟赛解题报告
2020年第十一届蓝桥杯模拟赛解题报告
|
11月前
滑雪(也是蓝桥模拟赛的题)
和蓝桥杯模拟赛的最大连通过差不多一个思想
47 0
|
算法
十四届蓝桥杯模拟赛第三期(一)
十四届蓝桥杯模拟赛第三期
437 0
|
存储 人工智能 测试技术
十四届蓝桥杯模拟赛第三期(二)
十四届蓝桥杯模拟赛第三期
134 0
|
定位技术
国庆七天乐,要猛! ——经典迷宫问题
国庆七天乐,要猛! ——经典迷宫问题
83 0
第14届蓝桥杯模拟赛 第2期
请找到一个大于 2022 的最小数,这个数转换成二进制之后,最低的 6 个二进制为全为 0 。请将这个数的十进制形式作为答案提交。
|
Android开发
LeetCode 双周赛 98,脑筋急转弯转不过来!
大家好,我是小彭。 昨晚是 LeetCode 第 98 场双周赛,你参加了吗?这场周赛需要脑筋急转弯,转不过来 Medium 就会变成 Hard,转得过来就变成 Easy。
84 0
|
测试技术
2021年第十二届蓝桥杯模拟赛(第四期)题目和解析
蓝桥杯是指蓝桥杯全国软件和信息技术专业人才大赛。是由工业和信息化部人才交流中心举办的全国性IT学科赛事。共有北京大学、清华大学、上海交通大学等全国1200余所高校参赛。
199 0
2021年第十二届蓝桥杯模拟赛(第四期)题目和解析
|
人工智能 测试技术
2021年第十二届蓝桥杯模拟赛(第三期)题目和解析
蓝桥杯是指蓝桥杯全国软件和信息技术专业人才大赛。是由工业和信息化部人才交流中心举办的全国性IT学科赛事。共有北京大学、清华大学、上海交通大学等全国1200余所高校参赛。
361 0
2021年第十二届蓝桥杯模拟赛(第三期)题目和解析
蓝桥杯历届试题 蚂蚁感冒(模拟版+非模拟版)
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。   每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。   当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。   这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。   请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。 输入格式   第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。   接着的一行是n个用空格分开的整数 Xi (-100< Xi < 100), Xi的绝对值, 表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左, 数据中不会出现0值,也不会出
203 1
蓝桥杯历届试题 蚂蚁感冒(模拟版+非模拟版)