园区参观路径 - 华为OD统一考试

2024-01-20 18:04

本文主要是介绍园区参观路径 - 华为OD统一考试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OD统一考试(C卷)

分值: 100分

题解: Java / Python / C++

alt

题目描述

园区某部门举办了Family Day,邀请员工及其家属参加;

将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;

家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条。

image-20240120142142242

输入描述

输入第一行为园区的长和宽;

接下来每一行表示该园区是否可以参观,0表示可以参观,1表示不可以参观。

输出描述

输出为不同路径的数量

示例1

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

题解

经典的动态规划问题。

1、状态定义:
dp[i][j] 表示走到格子 (i,j) 的方法数。

2、状态转移:

  • 如果网格 (i,j) 上有障碍物,则 dp[i][j] 值为 0,表示走到该格子的方法数为 0;
  • 否则网格 (i,j) 可以从网格 (i−1,j) 或者 网格 (i,j−1) 走过来,因此走到该格子的方法数为走到网格 (i−1,j) 和网格 (i,j−1) 的方法数之和,即 dp[i,j]=dp[i−1,j]+dp[i,j−1]。

Java

import java.util.Scanner;
/*** @author code5bug*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 读取输入int l = scanner.nextInt(), w = scanner.nextInt();int[][] garden = new int[l][w];for (int i = 0; i < l; i++) {for (int j = 0; j < w; j++) {garden[i][j] = scanner.nextInt();}}// 初始化动态规划数组int[][] dp = new int[l + 1][w + 1];dp[0][1] = 1;// 动态规划计算for (int r = 0; r < l; r++) {for (int c = 0; c < w; c++) {if (garden[r][c] == 1) {dp[r + 1][c + 1] = 0;} else {dp[r + 1][c + 1] = dp[r][c + 1] + dp[r + 1][c];}}}// 输出结果System.out.println(dp[l][w]);}
}

Python

l, w = map(int, input().split())
garden = [list(map(int, input().split())) for _ in range(l)]dp = [[0] * (w + 1) for _ in range(l + 1)]
dp[0][1] = 1for r in range(l):for c in range(w):if garden[r][c] == 1:dp[r+1][c+1] = 0else:dp[r+1][c+1] = dp[r][c+1] + dp[r+1][c]print(dp[l][w])

C++

#include <iostream>
#include <vector>using namespace std;int main() {// 读取输入int l, w;cin >> l >> w;vector<vector<int>> garden(l, vector<int>(w));for (int i = 0; i < l; i++) {for (int j = 0; j < w; j++) {cin >> garden[i][j];}}// 初始化动态规划数组vector<vector<int>> dp(l + 1, vector<int>(w + 1, 0));dp[0][1] = 1;// 动态规划计算for (int r = 0; r < l; r++) {for (int c = 0; c < w; c++) {if (garden[r][c] == 1) {dp[r + 1][c + 1] = 0;} else {dp[r + 1][c + 1] = dp[r][c + 1] + dp[r + 1][c];}}}// 输出结果cout << dp[l][w] << endl;return 0;
}

相关练习题

题号题目难易
LeetCode LCR 098LCR 098. 不同路径中等
LeetCode 6363. 不同路径 II中等

‍❤️‍华为OD机试面试交流群每日真题分享): 加V时备注“华为od加群”

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

这篇关于园区参观路径 - 华为OD统一考试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626850

相关文章

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技