洛谷 - P1187 3D模型

3D模型

题目描述

一座城市建立在规则的 n × m n \times m n×m 网格上,并且网格均由 1 × 1 1 \times 1 1×1 正方形构成。在每个网格上都可以有一个建筑,建筑由若干个 1 × 1 × 1 1 \times 1 \times 1 1×1×1 的立方体搭建而成(也就是所有建筑的底部都在同一平面上的)。几个典型的城市模型如下图所示:

现在给出每个网格上建筑的高度,即每个网格上建筑由多少个立方体搭建而成,要求这个建筑模型的表面积是多少。

输入格式

1 1 1 行包含 2 2 2 个正整数 n , m n,m n,m,为城市模型的长与宽。

接下来 n n n 行,每行 m m m 个数字字符,描述了网格每个格子高度(可见所有建筑高度都大于等于 0 0 0 且小于等于 9 9 9)。

输出格式

一个非负整数,为城市模型的表面积。

样例 #1

样例输入 #1

3 3
111
212
111

样例输出 #1

38

样例 #2

样例输入 #2

3 4
1000
0010
0000

样例输出 #2

12

提示

  • 20 % 20\% 20%的数据满足: n , m ≤ 10 n, m \leq 10 n,m10
  • 40 % 40\% 40%的数据满足: n , m ≤ 100 n, m \leq 100 n,m100
  • 100 % 100\% 100%的数据满足: 1 ≤ n , m ≤ 1000 1 \leq n, m \leq 1000 1n,m1000

不要从每一个方块的角度思考,而是看正面能求到多少面积,侧面能求多少面积,上方能求多少面积,然后乘二就行了。

代码:

#include<iostream>
using namespace std;
const int N = 1010;int a[N][N];int main(){int n,m;cin >> n >> m;int ans = 0;for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){char c;cin >> c;a[i][j] = c - '0';if(a[i][j] >= 1)ans++;}}for(int j = 1;j <= m;j++){ans += a[1][j];for(int i = 2;i <= n;i++){if(a[i][j] > a[i-1][j]){ans += (a[i][j] - a[i-1][j]);}}}for(int i = 1;i <= n;i++){ans += a[i][1];for(int j = 2;j <= m;j++){if(a[i][j] > a[i][j-1]){ans += a[i][j] - a[i][j-1];}}}cout << ans*2 << endl;    return 0;
}

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

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

相关文章

Unity MySql安装部署与Unity连接 下篇

一、前言 上篇讲到了如何安装与部署本地MySql&#xff1b;本篇主要讲Unity与MySql连接、创建表、删除表&#xff0c;然后就是对表中数据的增、删、改、查等操作。再讲这些之前会说一些安装MySql碰到的一些问题和Unity连接的问题。 当把本地MySql部署好之后&#xff0c;我们可能…

rollup 插件架构-驱动设计 PluginDriver

文章目录 GraphPluginDriver生成 PluginDriver 实例和 PluginCache 缓存创建插件上下文 pluginContext初始化 pluginContext 缓存设置、方法插件中使用缓存可替换的 replace pluginContextPluginDriver 提供 asyn、first、parallel 等类型 hookgetSortedPlugins 运行时收集并存…

uniapp 小程序获取WiFi列表

<template><view ><button click"getWifiList">获取WiFi列表</button><scroll-view:scroll-top"scrollTop"scroll-yclass"content-pop"><viewclass"itemInfo"v-for"(item, index) in wifiList&…

网络原理(应用层、传输层)

文章目录 一、应用层1.1 自定义协议1.2 通用协议XMLJSONprotobuf 二、传输层2.1 UDP协议2.2 TCP协议协议端格式及解析可靠性机制确认应答超时重传连接管理&#xff08;三次握手&#xff0c;四次挥手&#xff09;流量控制拥塞控制 效率机制滑动窗口延迟应答捎带应答 粘包问题TCP…

3月产品更新来袭,快来看有没你期待的功能

亮点更新一览 增强制作报表易用性&#xff0c;提升用户体验&#xff0c;如仪表盘图层锁定保持原有层级、即席查询支持批量选择表字段。 增强报表展示和分析能力&#xff0c;满足更多项目需求&#xff0c;如仪表盘表格支持配置是否显示分析菜单按钮、Web电子表格新增多选输入…

Unity(MVC思想)

MVC 一下演示使用MVC和不使用MVC的做法区别。 前两个没有使用MVC 主面板逻辑&#xff1a; mainPanel是该脚本名字 每个场景中不一定存在该面板&#xff0c;单纯的显隐需要去手动挂载过于麻烦。 所以自己读取创建面板出来(每个场景仅创建一次)&#xff0c;存下该面板&#xf…

车载平板丨车载数据终端是什么,如何在农机领域发挥作用

车载数据终端是指一种能够获取和处理车辆及其周边环境信息的设备&#xff0c;它集成了GPS导航、行车记录仪、车况诊断、通信等功能&#xff0c;能够实时监测车辆的位置、速度、行驶路线、油耗等数据&#xff0c;为车辆管理和运营提供数据支持。在农机领域&#xff0c;车载数据终…

C++ //练习 11.16 使用一个map迭代器编写一个表达式,将一个值赋予一个元素。

C Primer&#xff08;第5版&#xff09; 练习 11.16 练习 11.16 使用一个map迭代器编写一个表达式&#xff0c;将一个值赋予一个元素。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*************************************…

负荷预测 | Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测&#xff1b; 2.单变量时间序列数据集&#xff0c;采用前12个时刻预测未来96个时刻的数据&#xff1b; 3.excel数据方便替换&#xff0c;运行环境matlab…

Ant Desgin Vue Tree Tab 个性化需求

背景 个人对前端不是很熟&#xff0c;或者说过目就忘&#xff0c;但是对前端还要求不少&#xff0c;这就难搞了。 使用的前端是Mudblazor和ant design vue, Mudblazor 还没有开始搞&#xff0c;现在先用ant design vue&#xff0c;版本是vue3&#xff0c; ant design vue 4版…

经典面试:MySQL的锁机制,表级锁和行级锁的使用场景及解决方案

大家好&#xff0c;今天我们来聊一聊MySQL中的锁机制&#xff0c;特别是表级锁和行级锁的使用场景和解决方案。锁机制是数据库管理系统中用来确保数据一致性和完整性的重要工具。MySQL为我们提供了多种锁机制&#xff0c;每种锁都有其特定的使用场景和注意事项。 一、MySQL的锁…

webpack打包携带某个文件到dist目录

在 Webpack 配置文件 webpack.config.js 中&#xff0c;可以使用 CopyWebpackPlugin 插件实现将特定文件复制到dist目录&#xff1b;安装 CopyWebpackPlugin 插件&#xff1b; npm install copy-webpack-plugin --save-dev 在 webpack.config.js 中引入 CopyWebpackPlugin 插件…

CentOS 7下Vim常用工作模式详解

CentOS 7下Vim常用工作模式详解 在Linux系统中,Vim是一款功能强大的文本编辑器,被广大开发者所青睐。CentOS 7作为广泛使用的Linux发行版,Vim自然也是其标准配置之一。本文将详细介绍CentOS 7下Vim的常用工作模式及其相关命令选项和格式,帮助读者更好地掌握Vim的使用技巧。…

OSPF 开放式最短路径优先协议

目录 技术产生原因&#xff1a;因为RIP存在不足 OSPF优点&#xff1a; RIPV2和OSPFV2比较&#xff1a; 相同点&#xff1a; 不同点&#xff1a; OSPF的结构化部署 --- 区域划分 区域划分的主要目的&#xff1a; 区域边界路由器 --- ABR &#xff1a; 区域划分的要求&am…

【静态分析】静态分析笔记03 - 数据流分析(应用)

参考&#xff1a; 【课程笔记】南大软件分析课程3——数据流分析应用&#xff08;课时3/4&#xff09; - 简书 ---------------------------------------------------------------------------- 1. 数据流分析总览 may analysis: 输出可能正确的信息&#xff08;需做 over-…

【感谢】心怀感恩,共赴知识之旅——致每一位陪伴我突破百万总访问量的您

小伙伴朋友们&#xff1a; 此刻&#xff0c;我怀着无比激动与深深感激的心情&#xff0c;写下这篇特别的博文。今天&#xff0c;我的CSDN总访问量成功突破了百万大关&#xff0c;这不仅是一个数字的跨越&#xff0c;更是你们对我的支持、信任与鼓励的有力见证。在此&#xff0…

C语言学习笔记之操作符篇

目录 算术运算符 移位操作符 整型在内存中的存储&#xff08;补充知识&#xff09; ​编辑左移操作符 右移操作符 位操作符 赋值操作符 复合赋值操作符 单目操作符 关系操作符 逻辑操作符 && 与 || 的计算特点 条件操作符 逗号表达式 下标引用操作符 函…

Bert 将长段分成句子放在一个batch输入

from nltk.tokenize import RegexpTokenizersentence """Thomas Jefferson began building Monticello at the age of 26.""" # 按照自己的规则进行分词,使用正则分词器 # \w 匹配字母、数字、下划线 # 匹配任何非空白字符 tokenizer RegexpTo…

Canal 同步mysql 到es 日期格式报错解决

第一步&#xff1a;下载源码alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com) 第二步&#xff1a;编辑源码&#xff08;client-adapter下面的clinet-adapter.escore)&#xff1a; com.alibaba.otter.canal.client.adapter.es.core.support.ESSyncUt…

聚丙烯PP它的化学特性是什么? UV胶水能够粘接聚丙烯PP吗?

聚丙烯PP它的化学特性是什么? UV胶水能够粘接聚丙烯PP吗&#xff1f; 聚丙烯&#xff08;Polypropylene&#xff0c;简称PP&#xff09;是一种热塑性聚合物&#xff0c;属于聚烯烃类塑料之一。以下是聚丙烯的一些化学特性&#xff1a; 1. 分子结构&#xff1a; 聚丙烯是由丙烯…