OD C卷 - 园区参观路径

news2025/4/6 5:35:12

园区参观路径(100)

  • 有一个矩形园区,从左上角走到右下角,只能向右、向下走;
  • 共有多少条不同的参观路径;
    在这里插入图片描述

输入描述:
第一行输入长度、宽度
后续每一行表示 对应位置是否可以参观,0可以,1不可以
输出描述:
不同路径的数量

示例1
输入:
3 3
0 0 0
0 1 0
0 0 0
输出:
2

示例2
输入:
4 3
0 1 0
0 0 0
0 0 1
1 0 0
输出:
2

思路:

  • 深度优先,能走到终点,则max_path += 1

row, col = list(map(int, input().strip().split()))

matrix = []
for i in range(row):
    matrix.append(list(map(int, input().strip().split())))


# 两个方向
directs = [0, 1, 0]
max_paths = 0


def dfs(x, y):
    global max_paths

    d = 0
    while d < 2:
        xx = x + directs[d]
        yy = y + directs[d+1]

        if xx < row and yy < col and matrix[xx][yy] == 0: # 可以走 (位置可以重复参观)
            if xx == row - 1 and yy == col - 1:
                max_paths += 1
                return
            else:
                dfs(xx, yy)

        # 位置无效或者不能参观,则调转方向
        d += 1

    return


dfs(0, 0)
print(max_paths)
  • 动态规划
    • matrix 表示格子数据
    • dp 二维数组表示到达每个格子时的不同路径数,当第i行,第j列的格子即matrix[i-1][j-1]位置为0时,则可以从上边、左边走过来,对应的路径数为dp[i][j] = dp[i-1][j] + dp[i][j-1]
    • 最后dp[row][col] 即为到达终点的不同路径数

from typing import List


def func(matrix):
    global row, col

    # 第 i 行 j列 在dp中即为索引, 在matrix中 i-1, j-1 为索引
    # 二维数组 dp[i][j] 表示 matrix中从 (0, 0)起始点 到 (i - 1, j - 1)终点 的不同路径数,
    # 初始化均为 0
    dp: List[List[int]] = [[0 for _ in range(col+1)] for _ in range(row + 1)]

    # 为了将matrix[0][0] 起始点设置为 1 (起始点可以从上边、左边走过来)
    dp[0][1] = 1

    # 遍历当前要走到的格子下标 (i, j)
    for i in range(1, row + 1):  # 要走的第i行  (i-1才为索引)
        for j in range(1, col + 1):
            # 如果当前格子为0,则可以从上边和左边走过来
            if matrix[i - 1][j - 1] == 0:
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1]

    # dp[row][col] 就是从 (0, 0) 到 (m - 1, n - 1) 的不同路径数
    return dp[row][col]


row, col = [int(x) for x in input().strip().split()]
matrix = []
for i in range(row):
    matrix.append([int(x) for x in input().strip().split()])

print(func(matrix))

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

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

相关文章

【初学人工智能原理】【12】循环:序列依赖问题

前言 本文教程均来自b站【小白也能听懂的人工智能原理】&#xff0c;感兴趣的可自行到b站观看。 代码及工具箱 本专栏的代码和工具函数已经上传到GitHub&#xff1a;1571859588/xiaobai_AI: 零基础入门人工智能 (github.com)&#xff0c;可以找到对应课程的代码 正文 对于…

V.PS德国VPS详细测评

V.PS的德国机房位于法兰克福&#xff0c;默认接入电信CN2 GIA、联通CUII网络&#xff0c;针对中国大陆进行路由优化处理的。而且是强制移动走联通的CUII链路&#xff0c;确保三网都处在轻负载的网络环境下。 CPU是Intel Xeon Gold 6133 &#xff0c;启用了BBR&#xff0c;归属德…

Harbor系列之9:清理服务

清理服务 当从 Harbor 删除镜像时&#xff0c;空间不会自动释放。必须进行垃圾清理&#xff0c;才能从文件系统中彻底释放空间。 1. 垃圾清理 使用具有 Harbor 系统管理员权限的帐户登录 Harbor 界面。 选择系统管理 > 清理服务&#xff0c;点击立即清理垃圾&#xff1a;…

SAP MM学习笔记 - 豆知识02 - MR21 修改物料原价,MM02 修改基本数量单位/评价Class,MMAM 修改物料类型/评价Class

上一章讲了一些豆知识。比如 - MM50 批量扩张品目 - XK05/06 Block/消除供应商 - MM06/MM16 品目消除 - SE11/SE16/SE16/SE16N/SE16H/DB02 等查看常用的操作Table和数据的T-code SAP MM学习笔记- 豆知识01 - MM50 批量扩张&#xff0c;XK05/XK06 Block/消除供应商&#xf…

中国AI PC行业研究报告

核心摘要&#xff1a; 2020-2023年中国笔电出货量呈下降趋势&#xff0c;PC厂商亟需从产品形态、软硬技术、需求场景等角度寻求新的增长机会。而随着大模型、生成式AI技术的到来&#xff0c;其强大的数据处理、学习泛化与内容生成能力&#xff0c;高质效加速了各行各业人工智能…

万户 ezOFFICE 协同管理平台 getAutoCode接口SQL注入漏洞复现 [附POC]

文章目录 万户 ezOFFICE 协同管理平台 getAutoCode接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现0x06 修复建议万户 ezOFFICE 协同管理平台 getAutoCode接口SQL注入漏洞复现 [附POC] 0x01 前言 免…

书生大模型实战营——入门岛第1关

创建开发机 先在InternStudio平台创建开发机&#xff1a; SSH端口映射 点击SSH连接&#xff0c;复制登录命令&#xff1a; 本地打开powershell&#xff0c;粘贴登录命令&#xff0c;并在输入密码的地方粘贴密码&#xff0c;登录成功。 配置SSH密钥 使用RSA算法生成密钥&…

Java与模式及其应用场景知识点分享(电子版)

前言 Java 编程语言自1995年问世以来&#xff0c;其成功好像任何编程语言都无法媲美。生逢其时(互联网的兴起)固然是一方面的原因&#xff0c;而Java吸收总结了前人的经验教训&#xff0c;反映了最新技术(the state ofthe art)&#xff0c;对其受到欢迎和采用&#xff0c;恐怕…

vue3大屏可视化项目,包含地图,各种 图表,全屏适配方案

项目设计 1.始终满屏适配&#xff0c;这种方案一般用在屏幕变化不会特别的大项目&#xff0c;项目基本上不会用在比例非常不协调的大屏&#xff0c;设计图按1920*1080标准电脑屏幕比&#xff0c;所用的屏幕也基本在这个比例左右 2.涉及图表知识点简单&#xff0c;主要有自定义色…

关于 Codeforces 的界面问题

如果你出现了上述问题的话&#xff0c;你就下拉界面到最底层&#xff0c; 点击 desktop version 即可恢复

【PyTorch】深度学习PyTorch环境配置及安装【详细清晰】

文章目录 概要步骤Anaconda安装管理环境 安装PyTorchPyTorch环境使用JupyterJupyter简介安装Jupyter及使用 我的部分版本 概要 搭建PyTorch环境用于深度学习 步骤 Anaconda安装 安装详情&#xff1a;https://blog.csdn.net/Q20011102/article/details/127831950 我安装的是…

基于JAVA的物资管理系统设计与实现

点击下载源码 基于JAVA的物资管理系统设计与实现 摘要&#xff1a;随着科学技术的进步&#xff0c;计算机行业的迅速发展&#xff0c;大大提高人们的工作效率。计算机信息处理系统的引进已彻底改变了许多系统的经营管理。恒鑫租赁站长期大量出租各型钢管、扣件、塔吊等建筑施…

Android14音频进阶之使能内核debugfs:Adsp输出日志(七十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更…

轻松学c++入门篇

温馨提示&#xff1a;本篇文章只讲解是什么&#xff0c;以及怎么用 基础概念 namespace的价值 7.1namespace的价值 在C/C中&#xff0c;变量、函数和后⾯要学到的类都是⼤量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作⽤域中&#xff0c;可能会导致很多冲突…

MySQL--数据库备份

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、为什么要备份 备份&#xff1a;能够防止由于机械故障以及人为误操作带来的数据丢失&#xff0c;例如将数据库文件保存在了其它地方。 冗余&#…

AISOO爱数AnyShare/易享云-文档云数据恢复-2024.8.4

故障简述 一台数AnyShare的数据磁盘因物理故障&#xff0c;导致超过300GB企业文档资料远程访问。 客户在当地A数据恢复公司开盘恢复数据&#xff0c;但AnyShare的底层数据特有元数据信息&#xff0c;A恢复公司未能恢复此元数据信息&#xff0c;所以AnyShare极无法访问丢失的企…

栈和队列——4.前k个高频元素

力扣题目链接 给定一个非空的整数数组&#xff0c;返回其中出现频率前 k 高的元素。 示例&#xff1a; 输入&#xff1a;nums [1,1,1,2,2,3], k 2 输出&#xff1a;[1,2] 题干很简单&#xff0c;就是对数组中的元素进行频次计算&#xff0c;找到频次最多的前k和元素。那么…

48天笔试训练错题——day37

目录 选择题 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 编程题 1. 数据库连接池 2. mkdir 选择题 1. 2. 数据的五元组&#xff1a;源IP&#xff0c;源端口&#xff0c;目的IP&#xff0c;目的端口&#xff0c;协议。 源IP&#xff1a;描述数据从哪个主机上产生。 目的I…

南京观海微电子----单通道遥控开关电路原理及制作

本文介绍的遥控开关&#xff0c;具有遥控距离远&#xff08;大于30米&#xff09;&#xff0c;无方向限制&#xff0c;可穿透墙壁&#xff0c;工作稳定&#xff0c;体积小巧等优点。只要在家电设备的供电回路中加入这种电路&#xff0c;便能使家电具有遥控功能。下面分别介绍它…

『python爬虫』beautifulsoup库获取文本的方法.get_text()、.text 和 .string区别(保姆级图文)

目录 区别.string(不推荐用).text(get_text的简化版少敲代码的时候用).get_text(推荐用,功能强大,为什么不爱呢?) 示例代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 区别 省流直接看get_text 推荐用这个…