• 360:计算表面积


    题目描述

    360公司 2020秋招 技术综合C卷在线考试
    编程题 | 20.0分1/2
    表面积
    时间限制:C/C++语言 1000MS;其他语言 3000MS
    内存限制:C/C++语言 65536KB;其他语言 589824KB
    题目描述:
    将长N*M厘米的矩形区域划分成N行M列(每行每列的宽度均为1厘米),在第i行第j列的位置上叠放Ai,j个边长为1厘米的正方体(1≤Ai,j≤100),所有正方体就组成了一个立体图形,每个正方体六个面中的一部分会被其它正方体遮挡,未被遮挡的部分的总面积即为该立体图形的表面积,那么该立体图形的表面积是多少平方厘米?
    
    样例解释:
    
    输入
    第一行包含两个整数N和M,1≤N,M≤1000。
    
    接下来N行,每行包含M个整数,第i行的第j个整数表示Ai,j。
    
    输出
    输出表面积的大小。
    
    
    样例输入
    2 2
    2 1
    1 1
    样例输出
    20

    思路:

    leetcode 892,三维形体的表面积

    代码1

    作者:MR丶锐
    链接:https://www.nowcoder.com/discuss/224643?type=0&order=0&pos=30&page=0
    来源:牛客网
    
    import java.util.Scanner;
     
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (sc.hasNextInt()) {
                int N = sc.nextInt();
                int M = sc.nextInt();
                int[][] x = new int[N][M];
                int sum=0;
                int pai = 0;//Z遮挡
                for (int i = 0; i < N; i++) {
                    for (int j = 0; j < M; j++) {
                        x[i][j] = sc.nextInt();
                        pai = pai + x[i][j]-1 ;
                        sum=sum+x[i][j];
                    }
                }
                int hang = 0;//Y遮挡
                for (int i = 0; i < N; i++) {
                    for (int j = 0; j < M; j++) {
                        if(j==M-1){
                            break;
                        }
                        if (x[i][j] >= x[i][j + 1]) {
                            hang = hang + x[i][j + 1];
                        } else {
                            hang = hang + x[i][j];
                        }
     
     
                    }
                }
                int qian=0;//X遮挡
                for (int i=0;i<N;i++){
                    for (int j=0;j<M;j++){
     
                        if(i==N-1){
                            break;
                        }
                        if (x[i][j] >= x[i+1][j]) {
                            qian = qian + x[i+1][j];
                        } else {
                            qian = qian + x[i][j];
                        }
                    }
                }
                System.out.println(sum*6-hang*2-pai*2-qian*2);
            }
        }
    }

     代码2;

    作者:沈文兵
    链接:https://www.nowcoder.com/discuss/224643?type=0&order=0&pos=30&page=0
    来源:牛客网
    
    import java.util.*;
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (sc.hasNextInt()) {
                int n = sc.nextInt();
                int m = sc.nextInt();
                int[][] a = new int[n][m];
                int size = 0;
                for (int i = 0; i < n; i++) {
                    for (int j = 0; j < m; j++) {
                        a[i][j] = sc.nextInt();
                        size += a[i][j];
                    }
                }
                int count = 0;
                for (int i = 0; i < n; i++) {
                    for (int j = 0; j < m; j++) {
                        int temp = a[i][j];
                        count = count + (temp - 1) * 2;
                        if ((j - 1) >= 0) {
                            count = count + Math.min(a[i][j], a[i][j - 1]) * 2;
                        }
                        if ((i - 1) >= 0) {
                            count = count + Math.min(a[i][j], a[i - 1][j]) * 2;
                        }
                    }
                }
                System.out.println(size*6 - count);
            }
        }
    }

    https://leetcode-cn.com/problems/surface-area-of-3d-shapes/

    https://www.cnblogs.com/hdyss/p/10800162.html

  • 相关阅读:
    [USACO11JAN]Roads and Planes G【缩点+Dij+拓补排序】
    Cheatsheet: 2015 05.01 ~ 05.31
    Cheatsheet: 2015 04.01 ~ 04.30
    Cheatsheet: 2015 03.01 ~ 03.31
    Cheatsheet: 2015.02.01 ~ 02.28
    Cheatsheet: 2015 01.01~ 01.31
    Cheatsheet: 2014 12.01 ~ 12.31
    Cheatsheet: 2014 11.01 ~ 11.30
    Cheatsheet: 2014 10.01 ~ 10.30
    Cheatsheet: 2014 09.01 ~ 09.30
  • 原文地址:https://www.cnblogs.com/haimishasha/p/11360715.html
Copyright © 2020-2023  润新知