每日一题系列:不要二

2023-10-27

二货小易现有一个W*H的网格盒子,网格的行编号为0 ~ H-1,网格的列编号为0 ~ W-1。
每个格子可放1块蛋糕,任意两块蛋糕的欧几里得距离不能等于2

对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:
[(x1-x2) * (x1-x2)+(y1-y2) * (y1-y2)]的平方根
小易想知道最多可放多少块蛋糕在网格盒子里

输入:每组数组包含网格长宽W,H,用空格分割(1<=W、H<=1000)
输出:最多可以放的蛋糕数

解题思路

我们先来看一下欧几里得距离等于2的情况:
[(x1-x2) * (x1-x2)+(y1-y2) * (y1-y2)]的平方根=2

我们把两边平方就是

[(x1-x2) * (x1-x2)+(y1-y2) * (y1-y2)]=4

我们把(x1-x2) * (x1-x2)看成一个整体a, (y1-y2) * (y1-y2)看成一个整体b
a+b=4无非如下几种情况
1+3=4
3+1=4
2+2=4
4+0=4
0+4=4

a和b又是某个整数x1-x2和y1-y2的平方,也就是a和b只能是整数
所以合理的情况只有
4+0和0+4

那么代入到题目中就是x1-x2=0&&y1-y2=2 或者x1-x2=2&&y1-y2=0
换句话说,就是横向和纵向距离2是不能放蛋糕的(ps:这里需要考虑当前位置距离2有没有越界)

代码如下:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int w=scanner.nextInt();
        int h=scanner.nextInt();
        int count=0;
        int[][]arr=new int[w][h];
        //数组默认里面为0,那我们规定为0可以放,为1不可以放
        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.print(count);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每日一题系列:不要二 的相关文章

随机推荐

  • @RequestParam和@PathVariable的用法与区别

    SpringBoot PathVariable URL变量 Web应用中的URL通常不是一成不变的 例如微博两个不同用户的个人主页对应两个不同的URL http weibo com user1和http weibo com user2 我们
  • 工厂(factory)模式

    转自 http www cnblogs com hegezhou hot archive 2010 11 30 1892227 html 一 开篇 一个多月没有写文章了 一方面是由于家庭的原因 还有一方面是因为工作上的原因 所以在这里给大家
  • 使用hutool库,对excel进行一些导出、导入操作

    所用到的各种类 依赖的话百度一下吧 最后再给上全部代码 import cn hutool core collection CollUtil import cn hutool core io IoUtil import cn hutool p
  • Struts 2 标签

    原文 https www mkyong com struts2 struts 2 shidden hidden value example 在struts2中可以使用
  • 调gensim库,word2vec模型的保存和加载

    一 模型的保存 模型保存可以有很多种格式 根据格式的不同可以分为2种 一种是保存为 model的文件 一种是非 model文件的保存 我常用的保存格式是 model和 vector直接上代码和结果 1 保存为model文件 数据的读入 fi
  • PCIe中断之MSI和MSI-X的区别(详细)总结附图文快速掌握

    目录 一 整体介绍 二 MSI和MSI X对比 2 1 中断向量连续 2 2 映射区域区别 2 3 MSI X配置空间 2 3 1 MSI X Capbility介绍 2 3 2 Capbility ID介绍 2 3 3 Message C
  • tree树做过滤

    代码如下 递归tree关键词搜索 param key 需要递归的key名 param keyword 需要搜索查询的关键字 param treeList 遍历tree列表 param first 是否是首次传入 默认true functio
  • Thymeleaf (select、checkbox)数据绑定和数据回回显

    第一种情况 select 数据绑定 前端页面 div class col sm 10 div
  • 放大电路中的自激震荡及相位补偿方法

    自激震荡 产生原因 1 电容对信号的超前和滞后作用 要分析自激震荡 首先得了解电路中的相移 放大电路中使信号发生相移的罪魁祸首主要在于电容 如果电容串接在电路中 则构成高通滤波电路 在截止频率之前相位超前90 2 之后相移为0 如图1所示
  • 2023年数学建模:种群竞争模型及其MATLAB实现

    订阅专栏后9月比赛期间会分享思路及Matlab代码 目录 种群竞争模型 MATLAB实现 实战案例 两种昆虫的竞争
  • Typora常用快捷键(详细)

    1 typora常用快捷键 ctrl 切换编辑语法模式 预览模式 ctrl 1 6 标题1 6 等同于 一级标题 空格 标题内容 二级标题 空格 标题内容 三级标题 空格 标题内容 最多六级标题 ctrl B 粗体 ctrl I 斜体 ct
  • Unity编译Android的原理解析和apk打包分析

    作者 张坤 最近由于想在Scene的脚本组件中 调用Android的Activity的相关接口 就需要弄明白Scene和Activity的实际对应关系 并对Unity调用Android的部分原理进行了研究 本文主要探讨Scene和Activ
  • [机器学习] 代价函数(cost function)

    前言 代价函数也叫做损失函数 loss function 机器学习中训练模型的过程就是优化代价函数的过程 代价函数对每个参数的偏导数就是梯度下降中的梯度 1 代价函数的定义 假设有训练样本 x y 模型为f 参数为w f w wTx w T
  • Android项目构建之build.gradle配置与打包

    一 build gradle配置 Google推荐使用的Android Studio是采用Gradle来构建项目的 Gradle是用了一种基于Groovy的领域特定语言 DSL Domain Specific Language 来声明项目设
  • 数据库系统实现课程设计:图书管理系统

    图书管理系统 项目简介 开发环境 数据层 控制层 表示层 项目简介 围绕中小学 注 无图书馆 图书管理需求 如采购入库 图书编码 借书还书 图书出库 设计合理的系统功能模块和数据库结构 构建一个较为实用的图书管理系统 任务要求 按照软件工程
  • Electron-vue环境配置,打包报错问题解决

    Electron vue 项目构建过程 1 搭建Electron vue框架 参照网址 https electron org cn 2 执行npm install npm 在国内比较慢 所以采用淘宝镜像代理 执行以下命令 安装cnpm np
  • Android初级到高级视频教程全套 百度网盘下载

    百度网盘视频资源下载 https pan baidu com s 1MVYKj4L8 1nU7Er3z5UGRA https pan baidu com s 1ewu5bDpuggEu9y KCZC bg 入门级 中级 高级 进阶级 更多资
  • shell脚本——正则表达式,grep,awk

    目录 正则表达式 1 元字符 字符匹配 2 表示次数 3 位置锚定 4 分组或其他 grep awk的用法 1 基础用法 2 awk常见的内置变量 FS 指定输出的每行文本的字段分隔符 OFS 输出时的分隔符 NF 当前处理的行的字段个数
  • chromeOS介绍

    目录 概述 支持程序 功能 概述 chromeOS 是由Google设计基于Linux核心的作业系统 并使用Google Chrome浏览器作为其主要使用者介面 因此 Chrome OS主要支持Web应用程式 2016年起开始陆续相容And
  • 每日一题系列:不要二

    二货小易现有一个W H的网格盒子 网格的行编号为0 H 1 网格的列编号为0 W 1 每个格子可放1块蛋糕 任意两块蛋糕的欧几里得距离不能等于2 对于两个格子坐标 x1 y1 x2 y2 的欧几里得距离为 x1 x2 x1 x2 y1 y2