三维形体投影面积(c++题解)

题目描述

在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。

每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。

现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影。

投影 就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。

返回 所有三个投影的总面积 。

输入格式

第一行输入一个整数n

第二行输入一个n x n 的网格 grid

输出格式

输出只有一个数字,表示所有三个投影的总面积 。

样例

样例输入 1

复制2
1 2
3 4

样例输出 1

复制17

样例输入 2

复制1
2

样例输出 2

复制5

样例输入 3

复制2
1 0
0 2

样例输出 3

复制8

数据范围与提示

n == grid.length == grid[i].length

1 <= n <= 50

0 <= grid[i][j] <= 50

____________________________________________________________________________
日常发作业题解。 

也是简单到爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆表的题

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

_____________________________________________________________________________

#include 
using namespace std;
int n,a[105][105],b[105],Max,ans;
int main(){
	cin>>n;
    for(int i=1;i<=n;i++){
    	Max=0;
    	for(int j=1;j<=n;j++){
    		cin>>a[i][j];
    		if(a[i][j]!=0)ans++;
    		Max=max(a[i][j],Max);
    		b[j]=max(b[j],a[i][j]);
		}
		ans+=Max;
	}
	for(int i=1;i<=n;i++)ans+=b[i];
	cout<

 

你可能感兴趣的:(c++,算法,开发语言)