sgu - 519 - 3D City Model
2013-08-13 00:36
148 查看
题意:给出一个n*m的矩阵,也是由1*1*1的小立方体组成的几何体的俯视图,求这个几何体的表面积(1 <= n, m <= 100)。
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=519
——>>原想分角、边、中间3部分求,不过写着写着即发现,自己想复杂啦,可以不分类,一起求。
对于矩阵中的每一个元素,求与其上、下、左、右的高度差,这个差值就是能看见的正侧面,求完后加上顶面的1个和底面的1个。最后求总和即是表面积。
测试时发现,输入不对头,才发现,矩阵元素之间没空格,就猜想矩阵元素的高度是个1位数,结果还真是!
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=519
——>>原想分角、边、中间3部分求,不过写着写着即发现,自己想复杂啦,可以不分类,一起求。
对于矩阵中的每一个元素,求与其上、下、左、右的高度差,这个差值就是能看见的正侧面,求完后加上顶面的1个和底面的1个。最后求总和即是表面积。
测试时发现,输入不对头,才发现,矩阵元素之间没空格,就猜想矩阵元素的高度是个1位数,结果还真是!
#include <cstdio> #include <cstring> using namespace std; const int maxn = 100 + 10; int n, m, G[maxn][maxn]; int main() { int i, j, u, d, l, r; char c; while(scanf("%d%d", &n, &m) == 2){ memset(G, 0, sizeof(G)); for(i = 1; i <= n; i++){ getchar(); for(j = 1; j <= m; j++){ c = getchar(); G[i][j] = (int)(c - '0'); } } int ret = 0; for(i = 1; i <= n; i++) for(j = 1; j <= m; j++) if(G[i][j]){ u = G[i][j] - G[i-1][j]; d = G[i][j] - G[i+1][j]; l = G[i][j] - G[i][j-1]; r = G[i][j] - G[i][j+1]; if(u > 0) ret += u; if(d > 0) ret += d; if(l > 0) ret += l; if(r > 0) ret += r; ret += 2; } printf("%d\n", ret); } return 0; }
相关文章推荐
- SGU - 519 - 3D City Model (模拟)
- ACM ICPC 2010-2011, NEERC, Southern Subregional Contest Problem B. 3D City Model
- CF:3D City Model(小思维)
- 2010-2011 ACM-ICPC, NEERC, Southern Subregional Contest B. 3D City Model(数论)
- ArcGIS Flex API for 3D—简介
- 米公益完结项目结项反馈——“多彩世界,快乐3D”
- [OpenGL ES 04]3D变换实践篇:平移,旋转,缩放
- 【附源码】【Android 3D OpenGL】开发之一——变幻的背景色【MacroCheng原创】
- css3图书3D动画
- 突发奇想搞3D(认为可以实现的朋友们戳进来)
- Android 下开发3D程序--我的坎坷路(一)
- 《DirectX 9.0 3D游戏开发编程基础》 第二章 绘制流水线 读书笔记
- 制作3D生态模型墙纸
- 不用去电影院 3D电影格式/播放全攻略
- 【Unity 3D】学习笔记六:Slider控件(滑动条)
- SceneKit框架3D-object-c
- Android控件Gallery 3D效果
- Unity 3D 内存优化
- 深入浅出聊Unity3D优化:从Draw Calls到GC
- [SRM] 519