输入:

第一行包含两个整数N和M, 1<=N, M<=1000。

接下来N行,每行包含M个整数,第i行的第j个整数表示Aij。

输出:

输出表面积的大小。

样例输入:

2 2

2 1

1 1

样例输出:

20

# 思路:每次计算最底下的一层的四周暴露的面数,当某一位置的方块数只有一个的时候,暴露的面数加2,也就是上下两个面。# 定义存放方块层数的数组
A = []# 总面积
ans = 0# 输入矩阵的内容
def input_A():N, M = list(map(int, input().strip().split()))print("N = {}, M = {}".format(N, M))for i in range(N):# try:A.append(list(map(int, input().strip().split())))if len(A[i]) != M:print("矩阵A = ",A)raise Exception("length error!")          return (N, M)# 判断A[i][j]四周有几个暴露面
def areas_exposed(i, j, N, M):num = 0  # 一个方块四周暴露出的面数for p in [-1, 1]:if (p + i) < 0 or (p + i) >= N:  # 判断是否是边缘区域,是则面数加一num += 1elif A[p + i][j] == 0:  # 判断周围是否有方块,没有则说明暴露出了一个面num += 1if (p + j) < 0 or (p + j) >= M:  # 判断是否是边缘区域,,是则面数加一num += 1elif A[i][p + j] == 0:  # 判断周围是否有方块,没有则说明暴露出了一个面num += 1return num# 每次判断后去掉最底下一层
def remove(N, M):for i in range(N):for j in range(M):if A[i][j] >= 1:A[i][j] -= 1def main(ans):cube_exist = True  # 标识是否还存在未消去的方块N, M = input_A()while cube_exist:cube_exist = False  # 先置为 0, 当仍然存在方块的时候置为1,以便再次循环for i in range(N):for j in range(M):if A[i][j] == 1:ans += 2  # 顶层和底层共两个面ans += areas_exposed(i, j, N, M)  # 计算四周暴露面数elif A[i][j] > 1:cube_exist = Trueans += areas_exposed(i, j, N, M)  # 计算四周暴露面数remove(N, M)print(ans)  # 输出总面积数main(ans)

暂时只想出了这种解法,若有不足,还望指出,谢谢。

360公司 2020秋招 技术综合E卷 在线考试 编程题 第一题 表面积(web前端)相关推荐

  1. 中国移动系统集成公司2020春招技术综合在线编程题第二题

    题目 数字变形密码学 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 甲方需要将两个三位数的密码发送给 ...

  2. 中国移动系统集成公司2020春招技术综合在线编程题第一题

    题目 循环求区间内质数 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 质数又称素数.指整数在一个大于 ...

  3. 360公司2019秋招空中宣讲会开启,送海量面试直通卡!

    360公司2019秋招空中宣讲会开启,送海量面试直通卡! 360公司 国内互联网络安全企业领军者 2018年2月28日,正式在上交所敲锣上市,成功回归国内A股. 目前360秋招网申正在火热进行中 关于 ...

  4. 中国移动研究院2020春招技术综合JAVA在线编程题第二题

    题目描述 热和冷 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 卡尔.卡罗琳.海伦和汉是四个朋友,共 ...

  5. 中国移动研究院2020春招技术综合JAVA在线编程题第一题

    题目描述 经典的最大公约数和最小公倍数 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 最大公因数,也 ...

  6. 2020秋招 C++软件开发/游戏开发 面试知识整理汇总

    鄙人的2020秋招目前已经基本结束,最终拿了六家公司的offer,在综合比较之后目前已经有了明确的偏向,那就是去某公司转行Java,至于原因有很多层,我即使在做了这个决定半年后还是不敢肯定这个决定是否 ...

  7. 关于双非本科2020秋招,我想说的

    关于双非本科2020秋招,我想说的(仅限技术岗,java开发) 首先说明,对于双非的学校和学生我没有任何的恶意,因为我就双非学校毕业的. 本人安徽某双非一本,计算机专业,大四,近期刚结束了我的秋招,拿 ...

  8. 牛客网练习,某公司2017秋招 叫车 2017年

    牛客网练习,某公司2017秋招.叫车 2017年 第一题: 现有某函数,其方法声明为:int func(int x) 该函数对应的ARM汇编代码如下: 0000016A PUSH {LR} 00000 ...

  9. 牛客网练习,某公司2017秋招。叫车 2017年

    牛客网练习,某公司2017秋招.叫车 2017年 第一题:     现有某函数,其方法声明为:int func(int x)     该函数对应的ARM汇编代码如下:     0000016A     ...

  10. 【牛客】恒生公司2015秋招开发类笔试题

    恒生公司2015秋招开发类笔试题(一) 关于windows的消息机制的描述: 只有当一个线程调用Win32 API中的GDI(Graphics Device Interface)和User函数时,操作 ...

最新文章

  1. linux工具:ssh---未完
  2. java porm.xml_通过Maven仓库安装Spire.PDF for Java
  3. jQuery中的.bind()、.live()和.delegate()之间区别分析,学习jquery
  4. 基础编程题目集 6-11 求自定类型元素序列的中位数 (25 分)
  5. 独断专行站在互联网创业风口下的 00 后 CEO,没有钱该如何继续?
  6. 构建Docker镜像仓库的另一选择:Nexus3 - DockOne.io
  7. 解决Win10无操作两分钟进入睡眠问题
  8. C++中的CopyElision
  9. QLineEdit的焦点事件
  10. linux自动清理磁盘日志的一种方案
  11. input 起止时间_完整的时间(开始和结束时间)输入框验证js
  12. oracle blob类型在,Oracle blob类型 实践
  13. 派网AX50C设备上线做VPN服务器
  14. maven依赖asm_maven 导入asm的依赖 、 简单入门
  15. 【黑客游戏】学习知识又能玩游戏
  16. JS中定义全局配置文件
  17. win7系统怎样开启aero特效?
  18. 软件测试方法和技术,朱少民,第三章习题答案
  19. HTML_CSS教程
  20. 科技类的学术论文配图用什么字体最好?-测试狗

热门文章

  1. Android 开发笔记2.0
  2. Python爬网易云音乐的那些事
  3. 计算机毕业设计——基于Spring Boot框架的在线导游预约系统
  4. 魔兽世界3区部落最多的服务器,魔兽世界怀旧服玩家为你推荐,不用排队、非鬼服非单阵营的服务器...
  5. 计算机音乐算法冯,计算机辅助算法作曲方法研究与软件设计
  6. [Windows系统]openssl的安装与调用
  7. 计算机主板z h b,主板的A系 B系 H系 Z系有什么区别?
  8. 计算机维护工具全能版,USBOS V3.0彪悍版
  9. 读《虚幻引擎程序设计浅析》笔记
  10. 隆重揭晓 | Google Play 2018 年度大赏,中国开发者再领风骚