1027. 方格取数

Powered by:NEFU AB-IN

Link

文章目录

  • 1027. 方格取数
    • 题意
    • 思路
    • 代码

1027. 方格取数

  • 题意

某人从图中的左上角 A 出发,可以向下行走,也可以向右行走,直到到达右下角的 B 点。

在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。

此人从 A 点到 B 点共走了两次,试找出两条这样的路径,使得取得的数字和为最大。

  • 思路

典型的数字三角形模型的dp,但是不是走一遍,而是走两遍。此时不能贪心的做,做一遍dp,再做一遍dp
题目应该等价于,两个人同时走
思路为再加一维的dp,记录两人的总步数,这样三维dp,就会分为四种情况,而不是之前的两个情况(由上和左走过来)

具体思路如下图
在这里插入图片描述

  • 代码

# import
from sys import setrecursionlimit, stdin, stdout, exit
from collections import Counter, deque, defaultdict
from heapq import heapify, heappop, heappush, nlargest, nsmallest
from bisect import bisect_left, bisect_right
from datetime import datetime, timedelta
from string import ascii_lowercase, ascii_uppercase
from math import log, gcd, sqrt, fabs, ceil, floor
from types import GeneratorType
from typing import TypeVar, List, Dict, Any, Callable# Data structure
class SA:def __init__(self, x, y):self.x = xself.y = ydef __lt__(self, other):return self.x < other.x# Constants
N = int(20)  # If using AR, modify accordingly
M = int(20)
INF = int(2e9)# Set recursion limit
setrecursionlimit(INF)# Read
input = lambda: stdin.readline().rstrip("\r\n")  # Remove when Mutiple data
read = lambda: map(int, input().split())
read_list = lambda: list(map(int, input().split()))# Func
class std:# Recursion@staticmethoddef bootstrap(f, stack=None):if stack is None:stack = []def wrappedfunc(*args, **kwargs):if stack:return f(*args, **kwargs)else:to = f(*args, **kwargs)while True:if isinstance(to, GeneratorType):stack.append(to)to = next(to)else:stack.pop()if not stack:breakto = stack[-1].send(to)return toreturn wrappedfuncletter_to_num = staticmethod(lambda x: ord(x.upper()) - 65)  # A -> 0num_to_letter = staticmethod(lambda x: ascii_uppercase[x])  # 0 -> Aarray = staticmethod(lambda x=0, size=N: [x] * size)array2d = staticmethod(lambda x=0, rows=N, cols=M: [std.array(x, cols) for _ in range(rows)])max = staticmethod(lambda a, b: a if a > b else b)min = staticmethod(lambda a, b: a if a < b else b)filter = staticmethod(lambda func, iterable: list(filter(func, iterable)))# —————————————————————Division line ——————————————————————n, = read()
w = std.array2d(0, N, N)
f = [std.array2d(0, N, N) for _ in range(N * 2)]while True:x, y, num = read()if x + y + num == 0:breakw[x][y] = numfor k in range(2, n + n + 1):for i1 in range(1, n + 1):for i2 in range(1, n + 1):j1 = k - i1j2 = k - i2if 1 <= j1 <= n and 1 <= j2 <= n:t = w[i1][j1]if i1 != i2:t += w[i2][j2]f[k][i1][i2] = max(f[k][i1][i2], f[k - 1][i1 - 1][i2 - 1] + t,f[k - 1][i1 - 1][i2] + t,f[k - 1][i1][i2 - 1] + t,f[k - 1][i1][i2] + t)print(f[n + n][n][n])

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

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

相关文章

ESP32-C3模组上跑通NVS(7)

接前一篇文章:ESP32-C3模组上跑通NVS(6) 上一回讲到乐鑫技术支持发来了操作自定义NVS分区的代码。本回就对于代码进行详细解析,并通过此过程看一下具体应如何进行正确的操作。下边就开始代码分析: 主函数 主函数即app_main()代码如下: void app_main(void) {esp_err_t…

FOC方案大合集!

获取链接&#xff01;&#xff01;&#xff01; 本次小编给大家带来了一份FOC的方案大合集。此套方案是基于峰岹科技FU68系列MCU的系列方案&#xff0c;包含常用的无感&#xff0c;有感无刷电机的应用&#xff0c;每份方案都包含了原理图&#xff0c;PCB&#xff0c;代码文件&…

【TOOL】ceres学习笔记(一) —— 教程练习

文章目录 一、Ceres Solver 介绍二、Ceres 使用基本步骤1. 构建最小二乘问题2. 求解最小二乘问题 三、使用案例1. Ceres Helloworld2. Powell’s Function3. Curve Fitting4. Robust Curve Fitting 一、Ceres Solver 介绍 Ceres-solver 是由Google开发的开源C库&#xff0c;用…

2024年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题是由安全生产模拟考试一点通提供&#xff0c;P气瓶充装证模拟考试题库是根据P气瓶充装最新版教材&#xff0c;P气瓶充装大纲整理而成&#xff08;含2024年P气瓶…

[Open-source tool]Uptime-kuma的簡介和安裝於Ubuntu 22.04系統

[Uptime Kuma]How to Monitor Mqtt Broker and Send Status to Line Notify Uptime-kuma 是一個基於Node.js的開軟軟體&#xff0c;同時也是一套應用於網路監控的開源軟體&#xff0c;其利用瀏覽器呈現直觀的使用者介面&#xff0c;如圖一所示&#xff0c;其讓使用者可監控各種…

vue3父组件获取子组件的实例对象

一&#xff0c;ref 在父组件的模板里&#xff0c;对子组件的标签定义ref属性&#xff0c;并且设置属性值&#xff0c;在方法里获取ref()获取实例对象。 父组件&#xff1a; <template><div ><div>我是父组件</div><<SonCom ref"sonComRe…

Oracle中生僻汉字的解决办法

在Oracle数据库中处理生僻汉字时&#xff0c;主要面临的问题是某些字符集可能无法完全支持所有的汉字&#xff0c;特别是生僻字。以下是一些解决Oracle中生僻汉字问题的办法&#xff1a; 检查当前字符集&#xff1a; 使用SELECT USERENV(language) FROM dual;命令来查看当前数…

jlink使用记录

https://www.eet-china.com/mp/a79854.html Jlink使用技巧之读取STM32内部的程序stm32芯片解除写保护方法&#xff08;详细&#xff09;_stm32进入写保护如何用segger恢复-CSDN博客 stm32芯片解除写保护方法&#xff08;详细&#xff09; keil程序和jlink两种ccs使用Jlink调试时…

足底筋膜炎的症状

足底筋膜炎是足底的肌腱或者筋膜发生无菌性炎症所致&#xff0c;其症状主要包括&#xff1a; 1、疼痛&#xff1a;这是足底筋膜炎最常见和突出的症状。疼痛通常出现在足跟或足底近足跟处&#xff0c;有时压痛较剧烈且持续存在。晨起时或长时间不活动后&#xff0c;疼痛感觉尤为…

从0到1 Python基础

从0到1 Python基础 文章目录 从0到1 Python基础语法基础流程控制列表与元组字符串字典与集合初始函数**数学计算**日期时间 语法基础 变量&#xff1a;一个可以改变的量 &#xff08;1&#xff09; 变量的命名规则&#xff1a;变量由字母、数字与下划线组成&#xff1b;第一个字…

高通安卓12-安卓系统定制2

将开机动画打包到system.img里面 在目录device->qcom下面 有lito和qssi两个文件夹 现在通过QSSI的方式创建开机动画&#xff0c;LITO方式是一样的 首先加入自己的开机动画&#xff0c;制作过程看前面的部分 打开qssi.mk文件&#xff0c;在文件的最后加入内容 PRODUCT_CO…

Python | Leetcode Python题解之第174题地下城游戏

题目&#xff1a; 题解&#xff1a; class Solution:def calculateMinimumHP(self, dungeon: List[List[int]]) -> int:n, m len(dungeon), len(dungeon[0])BIG 10**9dp [[BIG] * (m 1) for _ in range(n 1)]dp[n][m - 1] dp[n - 1][m] 1for i in range(n - 1, -1, …

一文读懂LLM API应用开发基础(万字长文)

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;上一篇文章中我们详细介绍了LLM开发的基本概念&#xff0c;包括LLM的模型、特点能力以及应用&#xff1b;&#x1f632; 在本文中作者将通过&#xff1a…

Redis—Set数据类型及其常用命令详解

文章目录 一、Redis概述Set类型1 SADD:向集合&#xff08;Set&#xff09;中添加一个或多个成员2 SCARD:获取集合&#xff08;Set&#xff09;中成员数量3 SDIFF:获取多个集合之间的差集4 SDIFFSTORE:计算多个集合之间的差集&#xff0c;并将结果存储在指定的目标集合中5 SMEMB…

改进YOLO系列 | ICLR2022 | OMNI-DIMENSIONAL DYNAMIC CONVOLUTION: 全维动态卷积

YOLO系列改进 | ICLR2022 | 全维动态卷积&#xff1a;中文综述 简介 YOLO&#xff08;You Only Look Once&#xff09;是一种目标检测算法&#xff0c;以其速度和精度著称。 本文将介绍YOLO系列的改进&#xff0c;包括ICLR2022上提出的全维动态卷积&#xff08;Omni-Dimensio…

2024年特种设备(起重机指挥)考试题库

31.《中华人民共和国特种设备安全法》规定&#xff0c;特种设备安全管理人员、检测人员和作业人员应当按照国家有关规定取得&#xff08; &#xff09;&#xff0c;方可从事相关工作。 A.合格成绩 B.相应资格 C.行业认可 答案:B 32.《中华人民共和国特种设备安全法》规定&…

数据库管理-第211期 记一次简单的SQL性能优化(20240623)

数据库管理211期 2024-06-23 数据库管理-第211期 记一次简单的SQL性能优化&#xff08;20240623&#xff09;1 起因2 变化3 排查问题4 优化方案1方案2方案3 5 效果总结 数据库管理-第211期 记一次简单的SQL性能优化&#xff08;20240623&#xff09; 作者&#xff1a;胖头鱼的鱼…

Android 你应该知道的学习资源 进阶之路贵在坚持

coderzheaven 覆盖各种教程&#xff0c;关于Android基本时案例驱动的方式。 非常推荐 thenewcircle 貌似是个培训机构&#xff0c;多数是收费的&#xff0c;不过仍然有一些free resources值得你去挖掘。 coreservlets 虽然主打不是android&#xff0c;但是android的教程也​ 是…

Python基础面试题解答

Python基础面试题解答 基础语法 1. Python中的变量是如何管理内存的&#xff1f; Python中的变量通过引用计数来管理内存。当一个变量被创建时&#xff0c;会分配一个内存地址&#xff0c;并记录引用次数。当引用次数变为0时&#xff0c;垃圾回收机制会自动释放该内存。 2.…

Git config命令详解

使用场景 语法 git config [<file-option>] [--type<type>] [--comment<message>] [--fixed-value] [--show-origin] [--show-scope] [-z|--null] <name> [<value> [<value-pattern>]] git config [<file-option>] [--type<typ…