2023河南萌新联赛第(六)场:河南理工大学 B - 这是dp题吗

news2025/1/15 12:55:37

2023河南萌新联赛第(六)场:河南理工大学 B - 这是dp题吗

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

小l同学非常喜欢三角形,现在他想出个题目给小R同学做,想要考考小R同学。

​题目是这样的,给你一个数字三角形,第一行1个数字,第二行3个数字,第 i i i 2 ∗ i − 1 2*i-1 2i1个数字,一共 n n n行。如下图所示,为3行的数字三角形,一开始从顶点出发,当位于某一点时可以往这个点的正下方走,也可以往左下方和右下方走

​ 例如在值为3的这一个点,可以往正下方走到7,也可以往左下方走到6,也可往右下方走到8(不能从3走到5或9)。

​ 每走到一个位置就会取出当前所在位置的值,问从顶点走到最后一层,最终的往左下方和往右下方的次数之差的绝对值不能超过 k k k,所取的数值总和的最大值为多少。
在这里插入图片描述

输入描述:

第一行输入 n , k , 1 ≤ n ≤ 300 , 0 ≤ k ≤ 300 , k ≤ n n,k,1\leq n\leq300, 0 \leq k\leq 300,k\leq n nk1n300,0k300,kn
接下来输入 n n n行,第 i i i行共 2 ∗ i − 1 2*i-1 2i1个值,对于每个值 x , − 2 ∗ 1 0 9 ≤ x ≤ 2 ∗ 1 0 9 x, -2*10^9\leq x\leq2*10^9 x,2109x2109

输出描述:

输出从顶点到底部的获取总和的最大值

示例1

输入
3 1
1
2 3 4
5 6 7 8 9
输出
13

说明

第一次在值为1的点,第二次向右下方走到值为4,第三次从4这个点往正下方走到值为8的点,总和为13

在这里插入图片描述

import java.io.*;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        long[][] dp = new long[310][610];
        for (int i = 0; i <= 300; i++) {
            Arrays.fill(dp[i], -100000000000000L);
        }
        String[] str = bf.readLine().split(" ");
        int n = Integer.parseInt(str[0]);
        int k = Integer.parseInt(str[1]);
        for (int i = 1; i <= n; i++) {
            str = bf.readLine().split(" ");
            for (int l = 0, j = n - i + 1; j <= n + i - 1; l++, j++) {
                dp[i][j] = Integer.parseInt(str[l]);
            }
        }
        for (int i = 2; i <= n; i++)
            for (int j = n - i + 1; j <= n + i - 1; j++) {
                dp[i][j] += Math.max(dp[i - 1][j - 1], Math.max(dp[i - 1][j], dp[i - 1][j + 1]));
            }
        long ans = -100000000000000L;
        for (int i = n - k; i <= n + k; i++) {
            ans = Math.max(ans, dp[n][i]);
        }
        bw.write(ans + "\n");
        bw.close();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/915003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

淘宝商品优惠券详情item_get_app-获得淘宝app商品详情原数据

item_get_app-获得淘宝app商品详情原数据 taobao.item_get_app 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;调用API接口入口secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09…

等级发布/查询平台

在传统的教学模式下&#xff0c;老师们需要手动把成绩挨个私发给学生家长&#xff0c;这不仅费时费力&#xff0c;还容易出现错误。然而&#xff0c;随着科技的不断发展&#xff0c;易查分系统的出现为教师提供了一个高效准确的成绩发布工具。 系统优势 1. 高效便捷&#xff1a…

【数据结构与算法】弗洛伊德算法

弗洛伊德算法 介绍 和 Dijkstra 算法一样&#xff0c;弗洛伊德&#xff08;Floyd&#xff09;算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。弗洛伊德算法计算图中各个顶点之间的最短路径。迪杰斯特拉算法用于计算图中某一个顶点到其他顶点的最短路径。弗洛伊德算…

贪吃蛇大作战技术报告(JAVA)

完整作品见链接&#xff1a;JAVA贪吃蛇大作战大作业_Java贪吃蛇如何实现向左不能向右资源-CSDN文库 猫猫大作战技术报告 1、项目概述 本项目的编译环境为jdk-19&#xff0c;用到的编译器为Eclipse&#xff0c;采用图形化编程&#xff0c;基于JAVA的Swing库进行界面的绘制&…

解决Pandas KeyError: “None of [Index([...])] are in the [columns]“问题

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

使用ctcloss训练矩阵生成目标字符串

首先我们需要明确 c t c l o s s ctcloss ctcloss是用来做什么的。比如说我们要生成的目标字符串长度为 l l l&#xff0c;而这个字符串包含 k k k个字符&#xff0c;字符串允许的最大长度为 L L L&#xff0c;这里我们认为一个位置是一个时间步&#xff0c;就是一拍&#xff0…

PyTorch三种主流模型构建方式:nn.Sequential、nn.Module子类、nn.Module容器开发实践,以真实烟雾识别场景数据为例

Keras和PyTorch是两个常用的深度学习框架&#xff0c;它们都提供了用于构建和训练神经网络的高级API。 Keras: Keras是一个高级神经网络API&#xff0c;可以在多个底层深度学习框架上运行&#xff0c;如TensorFlow和CNTK。以下是Keras的特点和优点&#xff1a; 优点&#xff…

解决git上传远程仓库时的最大文件大小限制

git默认限制最大的单文件100M&#xff0c;当某个文件到达50M时会给你提示。解决办法如下 首先&#xff0c;打开终端&#xff0c;进入项目所在的文件夹&#xff1b; 输入命令&#xff1a;git config http.postBuffer 524288000 执行完上面的语句后输入&#xff1a;git config…

Stable Diffusion 系列教程 | 图生图基础

前段时间有一个风靡全网的真人转漫画风格&#xff0c;受到了大家的喜欢 而在SD里&#xff0c;就可以通过图生图来实现类似的效果 当然图生图还有更好玩的应用&#xff0c;我们一点一点来探索 首先我们来简单进行一下图生图的这一个实践---真人转动漫 1. 图生图基本界面 和…

代码之美:探索可维护性的核心与实践

为什么可维护性如此重要 项目的长期健康 在软件开发的早期阶段&#xff0c;团队可能会对代码的可维护性不太重视&#xff0c;因为他们更关心的是功能的快速交付。但随着时间的推移&#xff0c;随着代码库的增长和复杂性的增加&#xff0c;不重视代码的可维护性可能会导致严重的…

docker使用安装教程

docker使用安装教程 一、docker安装及下载二、使用教程2.1 镜像2.2 容器2.3 docker安装Redis 一、docker安装及下载 一、安装 安装执行命令&#xff1a;curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 二、启停常用命令 启动docker,执行命令&#xf…

分支和循环语句-C语言(初阶)

目录 一、什么是语句 二、分支语句 2.1 if语句 2.2 switch语句 三、循环语句 3.1 while循环 3.2 for循环 3.3 do...while循环 一、什么是语句 C语言语句有五类&#xff1a;表达式语句、函数调用语句、控制语句、复合语句、空语句。 控制语句用于控制程序的执行流程&#xff0…

在vue3+ts+vite中使用svg图片

目录 前言 步骤 1.安装svg-sprite-loader,这里使用的是6.0.11版本 2.项目的svg图片存放在src/icons下&#xff0c;我们在这里创建两个文件index.ts和index.vue&#xff08;在哪创建和文件名字并没有任何要求&#xff09; 3.在index.ts中加入下列代码(如果报错找不到fs模块请…

Redis的基本操作

文章目录 1.Redis简介2.Redis的常用数据类型3.Redis的常用命令1.字符串操作命令2.哈希操作命令3.列表操作命令4.集合操作命令5.有序集合操作命令6.通用操作命令 4.Springboot配置Redis1.导入SpringDataRedis的Maven坐标2.配置Redis的数据源3.编写配置类&#xff0c;创还能Redis…

ubuntu修改默认文件权限umask

最近在使用ubuntu的过程中发现一个问题&#xff1a; 环境是AWS EC2&#xff0c;登录用户ubuntu&#xff0c;系统默认的umask是027&#xff0c;修改/etc/profile文件中umask 027为022后&#xff0c;发现从ubuntu用户sudo su过去root用户登录查询到的umask还是027&#xff0c;而…

2023-8-22 单调栈

题目链接&#xff1a;单调栈 #include <iostream>using namespace std;const int N 100010;int n; int stk[N], tt;int main() {cin >> n;for(int i 0; i < n; i ){int x;cin >> x;while(tt && stk[tt] > x) tt--;if(tt) cout << st…

第十章,搜索模块

10.1添加搜索框 <template><div class="navbar-form navbar-left hidden-sm"><div class="form-group"><inputv-model.trim="value"type="text"class="form-control search-input mac-style"placeho…

数据传输过程

2 数据传输过程 了解网络中常用的分层模型后&#xff0c;现在来学习一下数据在各层之间是如何传输的。 2.1数据封装与解封装过程(一) 下面我们将以TCP/IP五层结构为基础来学习数据在网络中传输的“真相”。由于这个过程比较 抽象&#xff0c;我们可以类比给远在美国的朋友邮寄…

人工智能深度估计技术

人工智障&#xff08;能&#xff09;走起&#xff01;&#xff01;&#xff01; 下面是基本操作&#xff1a; 在Hugging Face网页中找到Depth Estimation的model&#xff0c;如下图&#xff1a; Hugging Face – The AI community building the future. &#xff08;上Huggin…

从自动驾驶到智能助理:AI和ML技术的革命性应用与前景

人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;的快速发展正在改变我们的世界。它们以惊人的速度渗透到各个领域&#xff0c;从自动驾驶汽车到智能助理、语音识别和自然语言处理等。AI和ML技术的应用范围和影响力越来越广泛&#xff0c;为我们的日常…