小桥流水人家(python)
题目描述
在n*m的地图上,存在一个喷水点(x,y). 如果相邻的位置低于有水的地方,水就能流到相邻的某位置。 已知各个地方的海拔高度,求水的最大覆盖个格子数。
输入描述:
第一行输入n,m,x,y.(1<=n,m<=1000,1<=x<=n,1<=y<=m) 以下n行每行m个整数,表示每个格子的海拔.(1<=h<=1000)
输出描述:
输出最大覆盖格子数
示例
输入
3 5 2 3
3 4 1 5 1
2 3 3 4 7
4 1 4 1 1
输出
6
# 请关闭中文输入法,用英文的字母和标点符号。
# 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
# 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
# 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
# 模版代码提供基本的输入输出框架,可按个人代码习惯修改class Solution:def __init__(self) -> None:passdef solution(self, n, m, x, y, vector):result = -1len_coor = 0t = xx = 3-yy = t-1coor_i_j = []for i in range(0, n):for j in range(0, m):coor = []if vector[i][j] < vector[x][y]:coor.append(i)coor.append(j)coor_i_j.append(coor)len_coor +=1coor_con = [[x,y]]for j in range(0, len(coor_con)):for i in range(0, len(coor_i_j)):if (abs(coor_i_j[i][0] - coor_con[j][0])<=1 and coor_i_j[i][1] == coor_con[j][1]) or (abs(coor_i_j[i][1] - coor_con[j][1])<=1 and coor_i_j[i][0] == coor_con[j][0]):coor_con.append(coor_i_j[i])for i in range(0, len(coor_con)-1):if coor_con[i][0] == coor_con[i+1][0] and coor_con[i][1] == coor_con[i+1][1]:passelse:result += 1return resultif __name__ == "__main__":arr_temp = [int(item) for item in input().strip().split()]n = int(arr_temp[0])m = int(arr_temp[1])x = int(arr_temp[2])y = int(arr_temp[3])vector = []for i in range(n):vector.append([int(item) for item in input().strip().split()])sol = Solution()result = sol.solution(n, m, x, y, vector)print(result)
未通过,报错,怀疑是题目中xy与程序表示不一致导致
运行失败:不通过
您的代码已保存。
出现错误,您提交的程序运行出错,请根据以下提示进行修改。
Traceback (most recent call last):
File "Main.py", line 56, in
result = sol.solution(n, m, x, y, vector)
File "Main.py", line 22, in solution
if vector[i][j] < vector[x][y]:
IndexError: list index out of range
xy做了转换是因为读题时觉得按照题目中描述,(2,3)点海拔是3,与其相邻且小于它的只有海拔是1的点,显然与答案不符,于是论坛搜索是否有人与我想法一致,看到了一位朋友(TLY-101-010)的解读,按照此方法进行转换,示例可以通过,但是不满足后台判例,比较疑惑,如果有人已通过,可否解答一下疑问呢?
小桥流水人家(python)相关推荐
- Python基础--元组的创建、删除、修改、访问以及元组推导式
# 元组的创建与删除 # 1 使用赋值运算符直接创建元祖 直接使用"="将一个元组赋值给变量 # 与列表相同的是元素个数没有限制,且只要是python支持的数据类型都可以:与列表不 ...
- 【第7节】零基础新手的Python入门实战宝典(五) —— 最基础的表达(数据类型 · 下)
如果你之前看过其他教程,但是发现云里雾里复杂的让你头晕眼花的话,没错,看这里,本系列Python教程专为啥都不会的新手用户打造,放宽心,大胆看,我就是说说书,你就当听听故事,轻松愉快走进编程的大门,& ...
- python学习笔记:python文件操作与异常处理
1.python文件操作:打开.关闭.读取.写入,合并excel等 1.1创建文件:open()函数打开文件,若文件存在则直接打开:若不存在则创建文件并打开 open('F:/pycodes/cunz ...
- Github配置(git+vscode+python+jupyter)
①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...
- 【实验楼】python简明教程
①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...
- 【Kaggle Learn】Python 5-8
五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- 使用python愉快地做高数线代题目~
今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...
- python 位运算与等号_Python 运算符
和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...
最新文章
- 从《翔谈》说起,看美团
- python转盘抽奖_react 抽奖转盘 ----小计
- 最短路径Dijkstra讲解,工具包使用 python
- 絮语之一:悲悯·海·《垂死的肉身》
- my-medium.cnf_您的手机如何打开medium.com-我将让门卫和图书管理员解释。
- 3d标注_告别繁琐,浩辰3D「文本特征」让设计更智慧!
- python如何快速导入未安装模块_如何导入安装在sitepackages中的模块
- python免费课程400节-小码王少编程经典课程都有哪几个 这里揭晓
- 黑马程序员_java之反射
- IDEA 使用和问题总结
- Oracle 常用脚本1
- espcms联动筛选功能开发
- 台式计算机开机密码设置,设置台式电脑的开机锁屏密码的方法步骤
- 用手机调试Android手机连上没反应解决办法
- art-记一次提取mmd模型到max和unity
- C++第2次实验2-三角形类
- BUUCTF--[GUET-CTF2019]number_game
- 如何快速切换各种pip源
- 入门系列-集成 Autofac
- 平均斯坦和极端斯坦_什么是“斯坦”,名称从何而来?
热门文章
- Android Studio Chipmunk | 2021.2.1 JNI
- 解决Cannot call sendError() after the response has been committed和getOutputStream() has already been
- [学习笔记] 二进制小数表示方法
- MySQL会成为21世纪的公司典范吗?(转)
- php提示Array to string conversion
- phone4s怎么越狱?iphone4s越狱教程图文解...
- android o 红米4x,Redmi新机开始预热,会不会是年度最佳游戏手机?
- 数据结构~总结一下B树、B-树、B+树、B*树的特点
- 风雨成长路——2015上半年年总
- copy.deepcopy()函数深复制