华为OD机试真题:欢乐的周末
■ 题目描述
小华和小为是很要好的朋友,他们约定周末一起吃饭。
通过手机交流,他们在地图上选择了多个聚餐地点(由于自然地形等原因,部分聚餐地点不可达),求小华和小为都能到达的聚餐地点有多少个?
输入描述
第一行输入m和n,m代表地图的长度,n代表地图的宽度。
第二行开始具体输入地图信息,地图信息包含:
0 为通畅的道路
1 为障碍物(且仅1为障碍物)
2 为小华或者小为,地图中必定有且仅有2个 (非障碍物)
3 为被选中的聚餐地点(非障碍物)
输出描述
可以被两方都到达的聚餐地点数量,行末无空格。
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
4 4
2 1 0 3
0 1 2 1
0 3 0 0
0 0 0 0
输出
2
说明
第一行输入地图的长宽为3和4。
第二行开始为具体的地图,其中:3代表小华和小明选择的聚餐地点;2代表小华或者小明(确保有2个);0代表可以通行的位置;1代表不可以通行的位置。
此时两者能都能到达的聚餐位置有2处。
示例2 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
4 4
2 1 2 3
0 1 0 0
0 1 0 0
0 1 0 0
输出
0
说明
第一行输入地图的长宽为4和4。
第二行开始为具体的地图,其中:3代表小华和小明选择的聚餐地点;2代表小华或者小明(确保有2个);0代表可以通行的位置;1代表不可以通行的位置。
由于图中小华和小为之间有个阻隔,此时,没有两人都能到达的聚餐地址,故而返回0。
备注:
地图的长宽为m和n,其中:
4 <= m <= 100
4 <= n <= 100
聚餐的地点数量为 k,则
1< k <= 100
#解题想法:把每个人可能到达的地点全部用dfs求出,再通过原来的l中目的地为3和这两个人是否
都能到达来获取结果测试用例:
4 4
2 1 0 3
0 1 2 1
0 3 2 0
0 1 0 0while 1:try:import copym, n = input().split(" ")m = int(m)n = int(n)l = []for _ in range(m):s = list(map(int, input().split()))l.append(s)#深度赋值l,因为dfs函数会改变传入参数ll的值,所以用一个复制一个l1= copy.deepcopy(l) l2 =copy.deepcopy(l)tmp=[]for i in range(m):for j in range(n):if l[i][j]==2:tmp.append([i,j])res1 = [[0] * m for _ in range(n)]res2 = [[0] * m for _ in range(n)]px=[-1,0,1,0]py=[0,-1,0,1]def dfs(ll,res,i,j,flag):for index in range(0,len(px)):new_x=i+px[index]new_y = j + py[index]if new_x<m and new_x>=0 and new_y<n and new_y>=0 and ll[new_x][new_y]!=1 and not flag:ll[new_x][new_y]=1res[new_x][new_y]=1dfs(ll,res,new_x,new_y,flag)ll[new_x][new_y]=0flag = Falsedfs(l1,res1,tmp[0][0],tmp[0][1],flag)flag = Falsedfs(l2, res2, tmp[1][0], tmp[1][1], flag)print("初始条件")for line1 in l:print(line1)print("第一个人可到达的路线")for line2 in res1:print(line2)print("第二个人可到达的路线")for line3 in res2:print(line3)result=0for i in range(m):for j in range(n):if l[i][j] == 3 and res1[i][j]==1 and res2[i][j]==1:result+=1print()print("result:",result)except:break
华为OD机试真题:欢乐的周末相关推荐
- 【华为OD机试真题 JAVA】欢乐的周末
JS版:[华为OD机试真题 JS]欢乐的周末 标题:欢乐的周末 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 小华和小为是很要好的朋友,他们约定周末一起吃饭.通过手机交流,他们 ...
- 华为OD机试真题大全完整目录
华为OD机试真题大全完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:华为OD机试真题大全 数量:406篇博文(2023年5月16日截止) 更新时间至:2023年5月16日(后续加上去的博文,会每 ...
- 【华为OD机试真题 python】连续出牌数量【2022 Q4 | 200分】
前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...
- 【满分】【华为OD机试真题2023 JAVAJS】查找充电设备组合
华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 查找充电设备组合 时间限制:5s 空间限制:256MB 限定语言:不限 题目描述: 某个充电站,可提供n个充电设备,每个充电设备均有对应的 ...
- 【满分】【华为OD机试真题2023 JAVAJS】查找重复代码
华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 查找重复代码 时间限制:1s 空间限制:32MB 限定语言:不限 题目描述: 小明负责维护项目下的代码,需要查找出重复代码,用以支撑后续的 ...
- 【华为OD机试真题2023 JAVA】不含101的数
华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 不含101的数 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 小明在学习二进制时,发现了一类不含101的数,也就是: ...
- 【华为OD机试真题 python】补种未成活胡杨 【2022 Q4 | 100分】
前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...
- 【华为OD机试真题 python】羊、狼、农夫过河【2022 Q4 | 100分】
前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...
- 【华为OD机试真题 JAVA】热点网站统计
JS版:[华为OD机试真题 JS]热点网站统计 标题:热点网站统计 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页 ...
- 【华为OD机试真题 JAVA】找城市
JS版: [华为OD机试真题 JS]找城市 标题:找城市 | 时间限制:1秒 | 内存限制:65536K | 语言限制:不限 一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要 ...
最新文章
- 下一代超大规模软件定义网络技术实践
- rust高级矿场_高级 Rust 所有权管理
- oracle数据库的性能测试工具有哪些,使用Oracle性能测试工具swingbench测试instance caging...
- Spring Boot + Mybatis 实现动态数据源
- Spring—集成Junit
- Python SHA1加密算法
- 计算机英语四六级对调剂有影响吗,你知道四六级对于考研的影响程度吗?
- python 列表切片学习
- 设计模式-结构型模式,适配器模式(4)
- 赚了20亿美元GandCrab勒索病毒家族的故事
- iOS打包ipa无签名打包企业签
- 参考文献标引方式_参考文献的标注方法有哪些呢?
- dos攻击的服务器修复,被dos攻击怎么解决
- 用css样式实现返回箭头
- PLX PCIe Switch使用
- 前端开发中自己常见问题
- 空气开关A型、B型、C型、D型的区别
- Java - parseObject
- 【计算机毕业设计】java 微信小程序商城系统的设计与实现
- 优势分析- 性格测试
热门文章
- 互联网电影院尝试破解实体院线排片难题
- 在Win10下删除快捷方式小图标,而不伤及其他注册表项的方法
- html中正方形圆角框,CSS高级技巧:圆角矩形
- 《团队-排课软件-开发文档》
- http://39.98.219.132 题库标准答案(题库序号:233)之插队问题
- 博客随笔《文章目录——php》大纲
- android 4.0.3固件,昂达平板即将发Android4.0.3优化固件
- DevE控件chartControl 基本用法
- lookback地址
- 泉州师范学院计算机课程表,泉州师范学院软学院 2010 级第 四 学期课程表.doc