• Java练习题十四期:不要二


    嘿!
    这期博客又是一期练习题,希望对你有帮助!
    在这里插入图片描述

    前言

    如果哪里写错了或者不明白的都可以私聊我哦!谢谢!

    一,题目

    二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。
    对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。
    在这里插入图片描述

    二,解析

    本题的重点是要读懂题意,并且需要多读两遍,才能读懂,本题本质就是在二维数组中每个坐标去放蛋糕,
    一个坐标位置放了蛋糕,跟他欧几里得距离为2的位置不能放蛋糕,这个就是关键点。对于两个格子坐标
    (x1,y1),(x2,y2)的欧几里得距离为: ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根 。
    也就是说:如果(x1,y1)放了蛋糕,则满足 ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4的(x2,y2)不能放蛋
    糕。
    ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4看起来是一个无解的表达式。
    但是可以进行加法表达式分解:
    1+3=4
    3+1=4
    2+2=4
    0+4=4
    4+0=4
    仔细分析前三个表达式是不可能的,因为(x1-x2) * (x1-x2)表达式结果不能等于2或3。也就是说( (x1-x2) * (x1-x2) 和(y1-y2) * (y1-y2) )两个表达式一个等于0,一个于4.可以看出:假设放蛋糕的位置是(x1,y1),则不能放蛋糕的位置(x2,y2),满足x1x2,y1-y22或者x1-x22,y1y2.
    在这里插入图片描述
    在这里插入图片描述

    三,代码

    import java.util.Scanner;
    
    public class Main2 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int w = scanner.nextInt();
            int h = scanner.nextInt();
            int[][] arr = new int[w][h];
            int count =0;
            for (int i = 0; i < w; i++) {
                for (int j = 0; j <h ; j++) {
                    if (arr[i][j]==0){
                        count++;
                        if (i+2 <w){
                            arr[i+2][j] = 1;
                        }
                        if (j+2 <h){
                            arr[i][j+2] = 1;
                        }
                    }
                }
            }
            System.out.println(count);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    这期博客就到此结束了!希望对你有帮助哈!
    记得关注小猪哦!
    下期再见了!
    请添加图片描述

  • 相关阅读:
    Spring注解 servlet3.0
    断点是什么,断点有哪几种类型?
    工信部等四部门印发重要标准化指南,引领人工智能产业高质量发展
    golang pprof 监控系列(1) —— go trace 统计原理与使用
    python 学习笔记(5)——SMTP 使用QQ邮箱发送邮件
    关于共识算法
    下沉市场投资热度提升 7天酒店打造酒店投资“极致性价比”
    【Linux网络】Linux网络设置
    人工智能学习:载入PASCAL VOC数据集(6)
    Netty(1)三大组件
  • 原文地址:https://blog.csdn.net/m0_62262008/article/details/127656705