当前位置: 首页 > news >正文

UVa 356 Square Pegs And Round Holes

题目描述

一个直径为2 n − 1 2n - 12n1单位的圆被绘制在2 n × 2 n 2n \times 2n2n×2n的棋盘上。下图展示了n = 3 n = 3n=3时的构造。

要求:编写程序,确定棋盘上包含圆弧段的格子数量,以及完全位于圆内的格子数量。

输入格式

输入文件的每行包含一个不超过150 150150的正整数n nn

输出格式

对于每个输入值n nn,按样例输出格式输出两行,后跟一个空行。

样例输入

3 4

样例输出

In the case n = 3, 20 cells contain segments of the circle. There are 12 cells completely contained in the circle. In the case n = 4, 28 cells contain segments of the circle. There are 24 cells completely contained in the circle.

题目分析

问题的本质

这是一个几何计数问题。圆被放置在2 n × 2 n 2n \times 2n2n×2n的棋盘中央,圆的直径d = 2 n − 1 d = 2n - 1d=2n1,因此半径为r = ( 2 n − 1 ) / 2 = n − 0.5 r = (2n - 1)/2 = n - 0.5r=(2n1)/2=n0.5

棋盘共有( 2 n ) × ( 2 n ) (2n) \times (2n)(2n)×(2n)个单元格,每个单元格是1 × 1 1 \times 11×1的正方形。圆与棋盘同中心。

坐标系统

将棋盘左下角设为( 0 , 0 ) (0,0)(0,0),右上角为( 2 n , 2 n ) (2n, 2n)(2n,2n)。每个单元格以其左下角坐标( i , j ) (i, j)(i,j)标识,其中0 ≤ i , j ≤ 2 n − 1 0 \le i, j \le 2n-10i,j2n1

圆的中心位于( n , n ) (n, n)(n,n),半径为r = n − 0.5 r = n - 0.5r=n0.5

单元格分类

  • 完全在圆内:单元格的四个顶点都在圆内(到圆心距离≤ r \le rr
  • 包含圆弧段(与圆相交):单元格至少有一个顶点在圆内,至少有一个顶点在圆外,且该单元格与圆相交

对称性

由于圆和棋盘都是中心对称的,只需计算四分之一的区域,然后乘以4 44

参考代码

// Square Pegs And Round Holes// UVa ID: 356// Verdict: Accepted// Submission Date: 2016-06-28// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,cases=0;while(cin>>n){// 输出空行分隔测试用例if(cases++)cout<<endl;// 包含圆弧段的格子数 = (2n-1) * 4cout<<"In the case n = "<<n<<", "<<(2*n-1)*4;cout<<" cells contain segments of the circle."<<endl;// 统计完全位于圆内的格子数intcontained=0;// 只考虑第一象限(不含坐标轴),因为对称性for(inti=1;i<=n-1;i++)for(intj=1;j<=n-1;j++)// 判断右上角顶点是否在圆内// 等价于 4(i^2 + j^2) <= (2n-1)^2if(4*(i*i+j*j)<=(2*n-1)*(2*n-1))contained++;// 四个象限,乘以 4cout<<"There are "<<contained*4<<" cells completely contained in the circle."<<endl;}return0;}
http://www.jsqmd.com/news/930398/

相关文章:

  • Ultimate SD Upscale深度解析:如何在有限显存下实现专业级AI图像放大
  • 3大核心模块深度解析:ok-ww自动化工具如何实现鸣潮游戏效率倍增
  • YOLOv8模型选型指南:从yolov8n.pt到yolov8m.pt,如何根据你的项目需求权衡速度与精度?
  • Apache Guacamole 远程桌面网关教程:浏览器打开家里的 Windows / Linux 主机
  • AI视频解析工具实测:如何一键提取视频脚本、字幕和提示词?
  • 数据库高并发技术:核心原理与工程实践
  • 3步搞定跨平台歌单迁移:LX Music桌面版智能神器全解析
  • 魔兽争霸III终极优化指南:如何用WarcraftHelper插件彻底解决兼容性问题
  • 基于W5500与Arduino的物联网股票监控系统:硬件实现与代码解析
  • 微信聊天记录如何真正属于你?探索WeChatMsg的数据自主实践指南
  • 2026 西安手表回收怎样避坑?真实案例教你挑选正规门店 - 薛定谔的梨花猫
  • 在Chromebook上用Piper Make图形化编程控制Raspberry Pi Pico
  • Sora 2景观视频不是“动效PPT”,而是新一代方案语言:20年设计院总工亲述如何用1段视频替代3轮汇报、缩短方案周期4.8天
  • Vue 项目实战《尚医通》,完成挂号预约业务,笔记19
  • BetterRTX Installer:轻松提升Minecraft RTX画质的图形化工具
  • 想用Arduino语法开发STM32?这个框架让你在Keil中轻松实现
  • 用铅笔和铝箔自制低成本弯曲传感器:原理、制作与Arduino应用
  • UVa 357 Let Me Count The Way
  • 2026年湖北瓦楞纸箱定制厂商全景评测:孝感源头工厂如何破解包装成本与品控双重困局 - 优质企业观察收录
  • 如何永久备份微信聊天记录:你的数字记忆守护指南
  • AtomGit 5月三方库下载量排行榜重磅发布!双榜格局焕新,潜力项目集中爆发
  • 从‘信号比噪声大多少倍’到‘噪声功率是多少dBW’:一个公式讲透通信中的信噪比计算
  • APK-Installer:Windows平台Android应用部署的技术实现与架构解析
  • 复盘近期行业事件,看懂 AI 发展新趋势
  • 相机存储错误Err 02排查指南:从物理清洁到系统修复
  • 为什么92%的医学动画团队还在用Blender重做Sora 2已生成的血管灌注序列?——神经外科AI动画组内部泄漏手册
  • 告别鼠标手!用这20个Mac访达快捷键,文件管理效率翻倍(附记忆口诀)
  • Steam创意工坊下载终极指南:跨平台模组获取完整解决方案
  • Arduino Uno驱动8个舵机:硬件连接、软件编程与电源管理全攻略
  • 别再为水质数据发愁了!用Python+LSTM搞定河流水质预测(附完整代码与数据集)