首页 > 其他分享 >蓝桥杯-跳跃

蓝桥杯-跳跃

时间:2023-01-29 22:34:05浏览次数:51  
标签:int 行第 蓝桥 55 小蓝 方格 权值 跳跃

题目  小蓝在一个 n 行 m 列的方格图中玩一个游戏。   开始时,小蓝站在方格图的左上角,即第 1 行第 1 列。   小蓝可以在方格图上走动,走动时,如果当前在第 r 行第 c 列,他不能走到行号比 r 小的行,也不能走到列号比 c 小的列。同时,他一步走的直线距离不超过 3。   例如,如果当前小蓝在第 3 行第 5 列,他下一步可以走到第 3 行第 6 列、第 3 行第 7 列、第 3 行第 8 列、第 4 行第 5 列、第 4 行第 6 列、第 4 行第 7 列、第 5 行第 5 列、第 5 行第 6 列、第 6 行第 5 列之一。   小蓝最终要走到第 n 行第 m 列。   在图中,有的位置有奖励,走上去即可获得,有的位置有惩罚,走上去就要接受惩罚。奖励和惩罚最终抽象成一个权值,奖励为正,惩罚为负。   小蓝希望,从第 1 行第 1 列走到第 n 行第 m 列后,总的权值和最大。请问最大是多少?

输入描述

输入的第一行包含两个整数 n, m 表示图的大小。

接下来 n 行,每行 m 个整数,表示方格图中每个点的权值。

其中,1 <= n <= 100,-10^4 <= 权值 <= 10^4。

输出描述

输出一个整数,表示最大权值和。

测试样例

输入样例

  1.   3 5
  2.   -4 -5 -10 -3 1
  3.   7 5 -9 3 -10
  4.   10 -2 6 -10 -4

输出样例

15

这题可以使用dfs暴力搜索

代码

#include<iostream>
#include<stdlib.h>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;

typedef pair<int,int> PII;
#define MAX -100000
const int N = 100;
int g[N][N];
int n,m;
//可以走到的点
int dx[9] = {0,0,0,1,1,1,2,2,3};
int dy[9] = {1,2,3,0,1,2,0,1,0};
int res =-1e9;

void search(int x,int y,int sum)
{
    //走到头了,得到各种路径的sum值,取最大值
    if (x == n && y == m)
    {
        res = max(sum,res);
    }
    int tx,ty;
    for(int i = 0;i < 9;i++)
    {
        tx = x + dx[i];
        ty = y + dy[i];
        if (x < n && y < m)
        {
            search(tx,ty,sum + g[tx][ty]);
        }
    }
}

int main()
{  
    cin >> n >> m;
    for(int i = 0;i < n;i++)
    {
        for(int j = 0;j < m;j++)
        {
            cin >> g[i][j];
        }
    }

    search(0,0,g[0][0]);
    cout << res << endl;
}

 

题目描述

小蓝在一个 nn 行 mm 列的方格图中玩一个游戏。

开始时,小蓝站在方格图的左上角,即第 11 行第 11 列。

小蓝可以在方格图上走动,走动时,如果当前在第 rr 行第 cc 列,他不能走到行号比 rr 小的行,也不能走到列号比 cc 小的列。同时,他一步走的直线距离不超过 33。

例如,如果当前小蓝在第 33 行第 55 列,他下一步可以走到第 33 行第 66 列、第 33 行第 77 列、第 33 行第 88 列、第 44 行第 55 列、第 44 行第 66 列、第 44 行第 77 列、第 55 行第 55 列、第 55 行第 66 列、第 66 行第 55 列之一。

小蓝最终要走到第 nn 行第 mm 列。

在图中,有的位置有奖励,走上去即可获得,有的位置有惩罚,走上去就要接受惩罚。奖励和惩罚最终抽象成一个权值,奖励为正,惩罚为负。

小蓝希望,从第 11 行第 11 列走到第 nn 行第 mm 列后,总的权值和最大。请问最大是多少?

输入描述

输入的第一行包含两个整数 n, mn,m,表示图的大小。

接下来 nn 行,每行 mm 个整数,表示方格图中每个点的权值。

其中,1 \leq n \leq 100,-10^4 \leq 权值 \leq 10^41≤n≤100,−104≤权值≤104。

输出描述

输出一个整数,表示最大权值和。

标签:int,行第,蓝桥,55,小蓝,方格,权值,跳跃
From: https://www.cnblogs.com/polang19/p/17073998.html

相关文章

  • 蓝桥杯备战日志(Python)2-相乘(逆向枚举)
    原题小蓝发现,他将  至  之间的不同的数与  相乘后再求除以  的余数,会得到不同的数。小蓝想知道,能不能在  至  之间找到一个数,与  相乘后再除以  后的余数......
  • 蓝桥杯 易错题 赢球票
    题目描述某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。主持人拿出 N 张卡片(上面写着 1⋯⋯N 的数字),打乱顺序,排成一个圆圈。你可以从任意一张卡片开始顺时......
  • 蓝桥杯 统计子矩阵
    题目描述给定一个N×M的矩阵A,请你统计有多少个子矩阵(最小1×1,最大N×M)满足子矩阵中所有数的和不超过给定的整数K? 输入格式第一行包含三个整......
  • 蓝桥杯 易错题 特殊时间 c++
    问题描述2022年2月22日22:20是一个很有意义的时间,年份为2022,由3个2和1个0组成,如果将月和日写成4位,为0222,也是由3个2和1个0组成,如果将时间中的......
  • Luogu P8773 [蓝桥杯 2022 省 A] 选数异或
    https://www.luogu.com.cn/problem/P8773因为\(a\texttt{xor}b=c\)则\(a\texttt{xor}c=b\),对于\(a_i\)找到\(a_i\texttt{xor}x\)离其最近的位置,放在ST......
  • Luogu P8710 [蓝桥杯 2020 省 AB1] 网络分析
    https://www.luogu.com.cn/problem/P7191发现一个性质:最多只会合并\(n-1\)次(类似树只有\(n-1\)条边)。于是在合并的时候暴力统计即可。时间复杂度\(O(n^2+m)\)。......
  • 蓝桥杯 枚举2 27题 直线
    题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上,那么这些点中任意两......
  • 力扣---1306. 跳跃游戏 III
    这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时,你可以跳到 i+arr[i]或者i-arr[i]。请你判断自己是否能够跳到对......
  • 蓝桥真题 - 跑步锻炼
    题目跑步锻炼标签:填空题2020省赛每天跑1km,逢周一或月初每天跑2km,若既是周一又是月初也只跑2km。计算从2000-1-1(含)到2020-10-1(含)共跑了多少千米。代码importdatetim......
  • 蓝桥杯-网络分析
    网络分析小明正在做一个网络实验。他设置了n台电脑,称为节点,用于收发和存储数据。初始时,所有节点都是独立的,不存在任何连接。小明可以通过网线将两个节点连接起来,连接......