題目描述
一座城市建立在規則的n×m網格上,并且網格均由1×1正方形構成。在每個網格上都可以有一個建筑,建筑由若干個1×1×1的立方體搭建而成(也就是所有建筑的底部都在同一平面上的)。幾個典型的城市模型如下圖所示:
現在給出每個網格上建筑的高度,即每個網格上建筑由多少個立方體搭建而成,要求這個建筑模型的表面積是多少。
輸入輸出格式
輸入格式:
?
庫洛米3d圖片、輸入文件的第1行包含2個正整數n和m,為城市模型的長與寬。
接下來n行,每行m個數字字符,描述了網格每個格子高度(可見所有建筑高度都大等于0且小等于9)。
?
輸出格式:
?
輸出文件包含一個非負整數,為城市模型的表面積。
庫洛米3D。?
輸入輸出樣例
3 3
111
212
111
38
3 4
1000
0010
0000
12
說明
本題有2個測試數據
20%的數據滿足:n, m≤10;
40%的數據滿足:n, m≤100;
100%的數據滿足:n, m≤1000。
?
魔猴網3d模型庫?題解:模擬
(#‵′)靠 數組開1000*1000不行,敲出來了感覺不可能錯啊...結果開1004*1004才過 氣呼呼..
代碼:
?
#include<iostream> #include<cstdio> #include<cstring> #define LL long long using namespace std;int n,m; int ans,s; int a[1004][1004]; string st; int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){cin>>st;for(int j=1;j<=m;j++){a[i][j]=st[j-1]-'0';if(a[i][j]>=1) ans+=2;}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(!a[i][j])continue;int b=a[i][j]-a[i-1][j];int c=a[i][j]-a[i+1][j];int d=a[i][j]-a[i][j+1];int e=a[i][j]-a[i][j-1];if(b>0)ans+=b;if(c>0)ans+=c;if(d>0)ans+=d;if(e>0)ans+=e;}}printf("%d\n",ans);return 0; }
?
不知道輸入后面加不加換行..加也沒事...
庫洛米3d建模。?