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

2023-11-04

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

输入描述:

每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)

输出描述:

输出一个最多可以放的蛋糕数
Tips:数组定义一定要放在main函数外,否则无法通过编译,
具体报错如下:
C6262	函数使用了堆栈的“4016036”个字节: 
超过了 /analyze:stacksize '16384'。 
请考虑将某些数据移到堆中。	

在这里插入图片描述
测试:输入6 7
输出:22
在这里插入图片描述

在这里插入图片描述

#include <iostream>
#include <string>
#include <vector>
using namespace std;


//用贪心的思想来做,开始将棋盘a全置为0,0代表放入蛋糕,-1代表不能放入
//从左向右从上到下遍历棋盘开始依此放蛋糕,然后将该块蛋糕上下左右欧几里得距离为2的点全部标记为-1,
//意思为该点不能再放入蛋糕,如果下一步扫到的-1,则跳过该点,
//如果扫到0,则ret++, 继续把周围距离为2的点标记为-1。
int a[1002][1002] = { 0 };   //w和h的最大值都为1000
int main()
{
	//int a[1002][1002] = { 0 };   //w和h的最大值都为1000
	int w = 0, h = 0, ret = 0;
	cin >> w >> h;
	if ((w >= 1 && w <= 1000) && (h >= 1 && h <= 1000))
	{
		for (size_t i = 0; i < w; i++)
		{
			for (size_t j = 0; j < h; j++)
			{
				if (a[i][j] == 0)  
				{
					ret++;//a[i][j]为0说明可以放
					if ((i + 2) < w)//欧几里得距离:((i-i+2)*(i-i+2)+(j-j)*(j-j)) = (2*2+0) = 4,根号为2
					{
						a[i + 2][j] = -1;
					}
					if ((j + 2) < h)//欧几里得距离:((i-i)*(i-i)+(j-j+2)*(j-j+2)) = (0+2*2) = 4,根号为2
					{
						a[i][j + 2] = -1;
					}
				}
			}
		}
		cout << ret << endl;
	}
	
	return EXIT_SUCCESS;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 静态只读字符串数组

    我在我的 Web 应用程序中使用静态只读字符串数组 基本上数组有错误代码 我将所有类似的错误代码保存在一个数组中并检查该数组 而不是检查不同常量字符串中的每个错误代码 like public static readonly string m
  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • OLED透明屏 原装:突破创新的高品质显示技术

    OLED透明屏 原装作为一项高品质的显示技术 正以其独特的透明度和卓越的画质引起广泛关注 根据最新的市场报告和行业动态 本文将通过介绍OLED透明屏 原装的特点和优势 应用领域 技术原理以及购买原装产品的重要性等方面内容 为读者提供全面了解
  • MaterialDesign

    http blog csdn net column details sunzxyongmaterial html
  • Tomcat9-默认登录名密码

    在tomcat启动完成后 在浏览器中输入http localhost 8080 进入tomcat默认页 那么tomcat的默认登录名和密码是什么呢 我是通过免安装的方式启动的tomcat 所以没有手动配置过用户名及密码 那如何配置呢 点击
  • Python学习笔记(五)————列表相关

    目录 1 列表定义语法 2 列表索引 列表操作 3 查找某元素的下标 4 修改特定位置 索引 的元素值 5 插入元素 6 追加元素 7 删除元素 8 清空列表内容 9 统计某元素在列表内的数量 10 总结 列表特点 1 列表定义语法 列表内
  • yolo5 [Errno 32] Broken pipe OSError: [WinError 1455] 页面文件太小,无法完成操作

    错误代码 File D Users Administrator miniconda3 lib runpy py line 85 in run code exec code run globals File E project weilan
  • npm安装vue

    安装vue cli 脚手架命令 npm install g vue cli 适用于vue cli 2 0 npm install g vue cli 适用于vue cli 3 0 一 初次安装 vue cli 3 0 步骤 1 全局安装vu
  • SpringBoot起飞系列-Web开发(五)

    一 前言 从今天你开始我们就开始进行我们的web开发 之前的一篇用SpringBoot起飞系列 使用idea搭建环境 二 已经说明了我们如何进行开发 当然这是搭建起步 接下来我们就开始进行详细的开发 包括springboot中各种start
  • AD(altium designer)15原理图与PCB设计教程(三)—— 原理图元器件库的管理

    目录 序言 原理图库文件编辑器 原理图库文件编辑器的启动 原理图库元器件的创建 设置工作区参数 库元器件的创建 原理图库元器件的编辑 原理图库元器件菜单命令 原理图库文件添加模型 创建含有子部件的库元器件 报表输出及库报告生成 输出报表 生
  • Android Studio 的NotePad制作(日志本),androidstudio基础

    此为点击设置之后的界面 设置颜色的代码如下 themeList ListPreference findPreference themelist themeList setSummary PrefVO themeListValue theme
  • 优化struts 2

    优化struts 2 1 关闭logging和devMode struts property struts devModel false 2 用freemarker tags 代替 struts2 tag
  • 硬件复习

    大家随便看看就好
  • Home Work--计蒜客

    临近开学了 大家都忙着收拾行李准备返校 但 I Love C 却不为此担心 因为他的心思全在暑假作业上 目前为止还未开动 暑假作业是很多张试卷 我们这些从试卷里爬出来的人都知道 卷子上的题目有选择题 填空题 简答题 证明题等 而做选择题的好
  • LeetCode-Python-54. 螺旋矩阵

    给定一个包含 m x n 个元素的矩阵 m 行 n 列 请按照顺时针螺旋顺序 返回矩阵中的所有元素 示例 1 输入 1 2 3 4 5 6 7 8 9 输出 1 2 3 6 9 8 7 4 5 示例 2 输入 1 2 3 4 5 6 7 8
  • 广州站

    12月2日 由阿里云 Serverless 团队主办的 云原生 Serverless 技术实践营 在广州顺利举行 本次活动面向所有企业技术人员 主打 沉浸式沙龙体验 6 小时搞定 Serverless 企业落地 活动当天 5 位阿里云技术讲
  • 80%白领危了!OpenAI发布GPT时代就业秘笈:34大铁饭碗保命

    导读 GPT 4发布没几天 OpenAI直接告诉所有人 GPTs是通用技术 80 的美国人的工作受到影响 想要保命 且看这34大 铁饭碗 前脚刚推出GPT 4 OpenAI后脚就发布了35页论文官宣 80 的美国人 都会受到AI的影响 研究
  • STM32“隐藏的定时器”-DWT

    01 前言 在之前的文章在 STM32延时函数的四种方法 使用定时器延时 在 如何测量代码运行时间 中提到使用定时器外设计算代码运行时间 文中提到这种方法的明显缺点就是需要占用一个定时器 一些MCU在特定应用场景下定时器外设资源是十分稀缺的
  • 信息安全大赛出的题目

    今天是信息安全大赛决赛的日期 可惜还要去市里培训 不能去现场观看 听说的做的一塌糊涂 也许是第一次举办这样的比赛 在校内还没有这样的氛围的缘故吧 中午打了电话 得知总分150左右的 最高的得了68分 我在反思 是我们把题目的难度没控制好 还
  • 华为OD机试 C++【最少步数】

    题目 你在一个一维的数轴上 起始位置为0 你每次只能走2步或3步 无论是向左还是向右 有时你可能需要走到负坐标上去 才能最终到达你的目标位置 任务 给定一个坐标点 找出到达那里的最小步数 输入 一个整数 n 表示目标坐标位置 1 lt n
  • Matter Project 入门 – Chip-tool 调试终端设备

    注意 本指南是对 Matter TE7 5 的投诉 请查看芯片工具 GitHub 页面 以获取任何最新更改 如果您没有遵循Matter 构建指南 您应该首先在您的 Raspberry Pi 4 上准备 Matter 环境 然后导航到 con
  • 二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。

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