UVa 155 All Squares
题目描述在一个2049 × 2049 2049 \times 20492049×2049的网格上坐标范围从( 0 , 0 ) (0,0)(0,0)到( 2048 , 2048 ) (2048,2048)(2048,2048)我们需要根据给定的规则绘制一系列嵌套的正方形并计算一个给定点被多少个正方形所包围包括边界。正方形的定义规则如下最大的正方形大小为k kk即边长为2 k 1 2k12k1中心位于网格中心( 1024 , 1024 ) (1024,1024)(1024,1024)。允许的正方形大小范围1 ≤ k ≤ 512 1 \leq k \leq 5121≤k≤512。对于大小k 1 k 1k1的正方形需要在它的四个角上分别放置一个大小为⌊ k / 2 ⌋ \lfloor k/2 \rfloor⌊k/2⌋的正方形。如果一个点位于正方形的边界上也算作被该正方形包围。给定k kk值和点的坐标( x , y ) (x,y)(x,y)需要计算有多少个正方形包含该点。题目分析与解题思路问题本质理解这是一个递归生成图形并统计点包含关系的问题。从最大的中心正方形开始按照规则不断在四个角上生成更小的正方形直到正方形大小变为1 11为止。整个过程形成了一种四叉树的结构。关键点分析坐标系的设定左上角为( 0 , 0 ) (0,0)(0,0)右下角为( 2048 , 2048 ) (2048,2048)(2048,2048)。中心点坐标固定为( 1024 , 1024 ) (1024,1024)(1024,1024)。正方形的表示大小为k kk的正方形边长实际为2 k 1 2k12k1。给定中心点( c x , c y ) (cx,cy)(cx,cy)和大小k kk正方形的范围是左边界c x − k cx - kcx−k右边界c x k cx kcxk上边界c y − k cy - kcy−k下边界c y k cy kcyk包含关系的判断点( x , y ) (x,y)(x,y)被正方形包含的条件是c x − k ≤ x ≤ c x k 且 c y − k ≤ y ≤ c y k cx - k \leq x \leq cx k \quad \text{且} \quad cy - k \leq y \leq cy kcx−k≤x≤cxk且cy−k≤y≤cyk注意边界上的点也算被包含因此使用≤ \leq≤而非 。递归生成规则对于大小k 1 k 1k1的正方形在四个角上生成大小为⌊ k / 2 ⌋ \lfloor k/2 \rfloor⌊k/2⌋的正方形。四个角的位置分别是左上角( c x − k , c y − k ) (cx - k, cy - k)(cx−k,cy−k)右上角( c x k , c y − k ) (cx k, cy - k)(cxk,cy−k)右下角( c x k , c y k ) (cx k, cy k)(cxk,cyk)左下角( c x − k , c y k ) (cx - k, cy k)(cx−k,cyk)注意这里使用的是当前正方形的边界坐标作为新正方形的中心点。算法设计这是一个典型的深度优先搜索问题从最大的中心正方形开始判断当前正方形是否包含目标点。如果包含计数器加1 11。如果当前正方形大小k 1 k 1k1则递归处理四个角上的子正方形。递归结束条件正方形大小变为1 11此时k 1 k1k1无法再生成更小的正方形。复杂度分析每个正方形会生成4 44个子正方形形成一棵四叉树。树的高度为log ⁡ 2 k \log_2 klog2​k总节点数约为4 log ⁡ 2 k k 2 4^{\log_2 k} k^24log2​kk2。对于最大k 512 k512k512节点数约为512 2 262144 512^2 2621445122262144完全可行。每个节点只进行常数次判断操作因此总时间复杂度为O ( k 2 ) O(k^2)O(k2)。实现细节使用全局变量记录目标点坐标和计数器。递归函数参数当前正方形的大小k kk和中心点坐标( c x , c y ) (cx,cy)(cx,cy)。注意k kk的更新k k / 2 k k / 2kk/2整数除法。代码实现// All Squares// UVa ID: 155// Verdict: Accepted// Submission Date: 2016-02-03// UVa Run Time: 0.000s//// 版权所有C2016邱秋。metaphysis # yeah dot net//// 题目描述似乎有问题。#includebits/stdc.husingnamespacestd;intx,y;intcounter;boolpointInSquare(intcenterx,intcentery,intsize){return(centerx-sizex)(xcenterxsize)(centery-sizey)(ycenterysize);}voidgenerateSquare(intk,intcenterx,intcentery){intsidek;if(pointInSquare(centerx,centery,side))counter;if(k1){k/2;generateSquare(k,centerx-side,centery-side);generateSquare(k,centerxside,centery-side);generateSquare(k,centerxside,centeryside);generateSquare(k,centerx-side,centeryside);}}intmain(){intk;while(cinkxy,k||x||y){counter0;generateSquare(k,1024,1024);coutsetw(3)rightcounterendl;}return0;}示例验证输入500 113 941 0 0 0输出5输出格式要求右对齐宽度为3 33因此5 55显示为5。总结本题通过递归方式构建嵌套正方形并在构建过程中统计点被包含的次数。理解正方形的定义和递归生成规则是关键。代码实现简洁高效利用全局变量和递归函数很好地解决了问题。需要注意的地方边界上的点也算被包含判断条件要用≤ \leq≤。递归时使用当前正方形的边界坐标作为子正方形的中心点。输出格式要求右对齐宽度3 33需要使用setw(3) \texttt{setw(3)}setw(3)控制格式。

相关新闻

【无人机控制】基于快速超螺旋自适应反步滑模控制的四旋翼无人机控制MATLAB_Simulink中实现,确保高精度跟踪、强抗干扰能力以及在不确定性非线性系统中的鲁棒性

【无人机控制】基于快速超螺旋自适应反步滑模控制的四旋翼无人机控制MATLAB_Simulink中实现,确保高精度跟踪、强抗干扰能力以及在不确定性非线性系统中的鲁棒性

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/7/7 3:53:03 阅读更多 →
【智能优化算法】基于主导群组的ECBSO增强型互联银行系统优化器:用于解决全局优化问题附matlab代码

【智能优化算法】基于主导群组的ECBSO增强型互联银行系统优化器:用于解决全局优化问题附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/7/8 2:51:58 阅读更多 →
如何训练小型Deep Research智能体?

如何训练小型Deep Research智能体?

研究背景当代大模型面临一个核心困境:知识库是有限的,世界在不断变化。于是业界发展出了深度搜索智能体(Deep Research Agent)这一新范式。这类系统做的事情听起来很简单——反复执行"思考-搜索-再思考"的循环&#xff…

2026/7/8 10:08:50 阅读更多 →

最新新闻

74HC574 寄存器实验:CP226 实验箱手动写入 8AH/6CH 的 3 个关键时序解析

74HC574 寄存器实验:CP226 实验箱手动写入 8AH/6CH 的 3 个关键时序解析

74HC574寄存器实验:CP226实验箱手动写入8AH/6CH的3个关键时序解析在计算机组成原理实验中,寄存器作为数据暂存的核心部件,其工作原理的理解至关重要。本文将深入剖析CP226实验箱中74HC574芯片在手动写入8AH和6CH数据时的三个关键时序节点&…

2026/7/10 5:37:20 阅读更多 →
C++ 多线程自旋锁实战:5 行代码实现与 3 大适用场景剖析

C++ 多线程自旋锁实战:5 行代码实现与 3 大适用场景剖析

C 多线程自旋锁实战:5 行代码实现与 3 大适用场景剖析在追求极致性能的系统级开发中,自旋锁(Spinlock)作为一种轻量级同步原语,常被用于替代传统互斥锁。本文将带您从零实现一个基于原子操作的高效自旋锁,并…

2026/7/10 5:33:18 阅读更多 →
武昌靠谱装修公司推荐,口碑好团队排名

武昌靠谱装修公司推荐,口碑好团队排名

选装修公司,几乎是我这些年身边朋友最头疼的一件事。从报价单里密密麻麻的隐藏项,到开工后不断增加的增项,再到项目经理三天两头“转包”的推诿,几乎每个人都能讲出一段心塞经历。我在武昌住了十来年,前前后后帮亲戚朋…

2026/7/10 5:29:17 阅读更多 →
网络安全与云计算好学吗?华为认证PK各类证书,2026转行全指南

网络安全与云计算好学吗?华为认证PK各类证书,2026转行全指南

网络安全和云计算并不难学。 零基础普通人只要选对方向、跟对路线,3到6个月即可入门。相比而言,云计算侧重架构与运维,上手更快;网络安全偏重攻防与策略,技术综合性更强。转行关键在于考取高含金量的行业证书。一、 为…

2026/7/10 5:27:17 阅读更多 →
猫抓浏览器插件:网页视频下载的终极完整指南

猫抓浏览器插件:网页视频下载的终极完整指南

猫抓浏览器插件:网页视频下载的终极完整指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存网页上的精彩视频而烦恼吗&…

2026/7/10 5:25:16 阅读更多 →
基于TS2007FC与STM32F205RB的高保真音频系统设计

基于TS2007FC与STM32F205RB的高保真音频系统设计

1. 项目概述:基于TS2007FC与STM32F205RB的音频系统设计在嵌入式音频处理领域,如何实现高保真音频输出一直是工程师面临的挑战。本项目采用TS2007FC数字功放芯片与STM32F205RB微控制器构建了一套高性能音频处理系统。TS2007FC作为一款2x20W立体声D类音频放…

2026/7/10 5:25:16 阅读更多 →

日新闻

STM32与LTC1864高精度ADC的SPI通信实现

STM32与LTC1864高精度ADC的SPI通信实现

1. 项目背景与核心需求在工业控制和嵌入式系统开发中,模拟信号与数字系统的无缝集成一直是工程师面临的关键挑战。LTC1864作为一款16位高精度ADC转换器,配合STM32F101ZG这类主流微控制器,能够构建高性能的模拟信号采集系统。这种组合特别适合…

2026/7/10 0:03:07 阅读更多 →
猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页视频无法下载而烦恼吗&am…

2026/7/10 0:05:09 阅读更多 →
直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

1. 直流有刷电机驱动方案概述在工业自动化和消费电子领域,直流有刷电机因其结构简单、控制方便、成本低廉等优势,仍然是许多应用场景的首选驱动方案。TC78H653FTG作为东芝推出的新一代H桥驱动器,与MKV46F256VLH16微控制器配合使用&#xff0c…

2026/7/10 0:05:09 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻