蓝桥杯 试题 算法训练 拿金币

2023-11-16

问题描述

  有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。


输入格式

  第一行输入一个正整数n。
  以下n行描述该方格。金币数保证是不超过1000的正整数。


输出格式

  最多能拿金币数量。


样例输入

3
1 3 3
2 2 2
3 1 2


样例输出

11


数据规模和约定

  n<=1000


分析:这题是对dp的简单运用,我作为初学者在看了一篇文章之后都会做了,下面附上代码

#include <bits/stdc++.h>

using namespace std;

#define debug(a) cout<<#a<<"="<<a<<endl;
#define lyh(i,a,b) for(int i=a;i<b;i++)
#define hyl(i,a,b) for(int i=a;i>b;i--)
#define LL long long
int a[1005][1005];
int dp[1005][1005];
int main() {

	int n;
	cin >> n;
	lyh(i, 0, n)
	lyh(j, 0, n)
	cin >> a[i][j];
	lyh(i, 0, n)
	lyh(j, 0, n)
	dp[i][j] = 0;
	/*
		有两种走的方式:第一种走下面,第二种走右边
		要到达i,j 要不然就是从(i-1,j)然后走下面
		要不然就是从(i,j-1)走右边
		所以dp[i][j] = dp[i-1][j]+dp[i][j-1]
		涉及到一个初始状态

	*/
	lyh(i, 0, n) {
		lyh(j, 0, n) {
			//在左上角的角落
			if (i == 0 && j == 0) {
				dp[i][j] = a[i][j];
			}
			//在最上面,只能往下走
			if (i == 0 && j != 0) {
				dp[i][j] = dp[i][j - 1] + a[i][j];
			}
			//在最左边,只能往右边走
			if (i != 0 && j == 0) {
				dp[i][j] = dp[i - 1][j] + a[i][j];
			}
			//随便走
			if (i != 0 && j != 0) {
				dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + a[i][j];
			}
		}
	}
	cout << dp[n - 1][n - 1] << endl;
	return 0;
}

代码的大部分地方都写了比较详细的注解,相信大家都能看懂

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯 试题 算法训练 拿金币 的相关文章

随机推荐

  • Qt5的插件机制(7)--插件开发示例代码(Lower-level API)

    插件代码 接口类头文件 MyPluginInterface h cpp view plain copy ifndef INTERFACES H define INTERFACES H include
  • Nginx配置https的wordpress站点,wp-content目录下资源404解决方案

    Nginx配置https的wordpress站点 wp content目录下资源404解决方案 参考文章 1 Nginx配置https的wordpress站点 wp content目录下资源404解决方案 2 https www cnblo
  • pandas DataFrame数据的合并与拼接

    转发 Python pandas DataFrame数据的合并与拼接 merge join concat 总结得很全面 比如将一个文件夹下所有文件合并 merge import os import pandas as pd file lis
  • 数据结构——图解求单链表的长度及插入操作C语言

    单链表的插入属于单链表的基本操作之一 关于单链表的初始化的解释在我的上篇文章中已经详细说明过了 一 求单链表长度 求单链表长度的操作很简单 其实在初始化赋值或遍历那块就可以实现 但是为了让结构层次独立清楚 我还是把求长度写成了一个函数 单链
  • 在GCP上创建Cloud SQL的三种方式(Console,gcloud,Terraform)

    1 简介 Cloud SQL 是GCP上的关系型数据库 常用的有三种方式来创建 1 界面操作 2 命令行 gcloud 3 Terraform 在开始之前 可以查看 初始化一个GCP项目并用gcloud访问操作 2 GCP 操作界面 登陆G
  • git 删除右键菜单

    首先 我表示git默认的右键菜单很烦 太多项了 而我们平时用的最多的无非是一个Git Bash 删除msGit右键菜单 如果是windows 64位系统 cmd进入 C Program Files x86 Git git cheetah 目
  • 恢复U盘分区:windows自带工具diskpart

    步骤 如下图 cmd命令行处执行diskpart命令 运行该工具 然后list disk 列出所有磁盘 然后select disk xxx 选中自己的磁盘 比如下图的是磁盘2 然后clean 清空分区 然后creat partition p
  • 我们这个年龄应该要做的事

    大家好 我是一名入门的菜鸟 如果你不经意间翻开了我的文章 谢谢您 您的支持是我前进的动力 让我们一起加油 由于不是名牌大学 只是一个普普通通的专科生 所以 我想通过自己的努力来获得我想要的 我不会放弃我的梦想 我也曾幻想着我成功的时候在朋友
  • MQ如何保证消息不丢失

    如何保证消息不丢失 哪些环节会造成消息丢失 其实主要就是跨网络的环境中需要考虑消息的丢失 主要是有以下几个方面 生产者往MQ发送消息 MQ的Broker是集群有主从的 主节点把消息同步到从节点时也需要考虑消息丢失问题 消息从内存持久化到硬盘
  • Java 3D 开发

    OPENGL VRML DIRECT3D JAVA3D的比较 Java3D建立在JAVA基础之上 JAVA语言的简单性使JAVA3D的推广有了可能 它实现了以下三维显示能够用到的功能 生成简单或复杂的形体 也可以调用现有的三维形体 使形体具
  • 错误AttributeError: module ‘onnx‘ has no attribute ‘load‘的解决方式

    错误出现 在使用torch导出onnx后 使用 onnx load xxx onnx 出现 AttributeError module onnx has no attribute load 错误原因 详见https github com p
  • 隐马尔可夫模型介绍

    http blog csdn net gumpeng article details 51648259 关于隐马尔可夫的理论介绍 请参见李航博士的 统计学习方法 介绍的很详尽 下面主要通过网上查到的例子来把隐马的相关问题说清楚 以下内容都非
  • 【C语言进阶】自定义类型详解(结构体、枚举、联合)

    博客主页 小王又困了 系列专栏 C语言 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 一 结构体 1 1结构体的认识 1 2结构体的声明 1 先声明结构体类型 再定义该类型的变量 2 在声明类型的同时定义 1 3结构体的特殊声明
  • Leetcode 5544: 执行操作后字典序最笑的字符串

    题目描述 给你一个字符串 s 以及两个整数 a 和 b 其中 字符串 s 的长度为偶数 且仅由数字 0 到 9 组成 你可以在 s 上按任意顺序多次执行下面两个操作之一 累加 将 a 加到 s 中所有下标为奇数的元素上 下标从 0 开始 数
  • win10修改默认安装路径

    win10修改默认安装路径 win10修改默认安装路径 1 以Win10系统为例 首先我们鼠标右键点击 开始 菜单 弹出菜单之后 点击 运行 如下图所示 2 在运行的输入框输入 regedit 并点击确定进入注册表编辑器 如下图所示 3 在
  • layui时间选择器---去除秒列

    layui时间选择器 去除秒列 前言 layui开发文档中介绍的时间选择器包含了时 分 秒的选择 在实际开发过程中 我们选择时间可能不需要精确到秒 原始结构 1 HTML页面引入layui js文件 2 HTML文件中添加如下代码 3 在j
  • 大数据分析 开源数据集_什么是大数据分析? 来自各种数据集的快速答案

    大数据分析 开源数据集 有数据 然后有大数据 那么 有什么区别呢 大数据定义 一个清晰的大数据定义可能很难确定 因为大数据可以涵盖许多用例 但是总的来说 该术语指的是数据量如此之大 如此复杂以至于传统的数据处理软件产品无法在合理的时间内捕获
  • 只需一个提示词解除GPT-4的字符限制!

    ChatGPT的内存有限 GPT 3 5 turbo的限制为4897个令牌 而GPT 4的最大限制为8192 如果您在使用GPT 4进行聊天时超过8192个令牌 约6827个单词 它就会开始遗忘 我想出了一种新的技巧 可以轻松将对话扩展10
  • Linux项目实战C++轻量级Web服务器源码分析TinyWebServer

    目录 文章简介 一 先跑起来项目 二 再看项目结构 三 逐个击破 立下flag 文章简介 TinyWebServer是Linux下C 轻量级Web服务器 助力初学者快速实践网络编程 搭建属于自己的服务器 作为新手拿它练手入门再好不过的不二之
  • 蓝桥杯 试题 算法训练 拿金币

    问题描述 有一个N x N的方格 每一个格子都有一些金币 只要站在格子里就能拿到里面的金币 你站在最左上角的格子里 每次可以从一个格子走到它右边或下边的格子里 请问如何走才能拿到最多的金币 输入格式 第一行输入一个正整数n 以下n行描述该方