尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
UVa 1549 Lattice Point
题目描述格点是指在二维xyxyxy平面中坐标(x,y)(x, y)(x,y)均为整数的点。定义集合P(r){(x,y)∣x2y2≤r2, (x,y) 为平面上的格点} P(r)\{(x,y)\mid x^2y^2\le r^2,\ (x,y)\text{ 为平面上的格点}\}P(r){(x,y)∣x2y2≤r2,(x,y)为平面上的格点}并用D(r)D(r)D(r)表示P(r)P(r)P(r)中元素的个数。已知当rrr较大时D(r)D(r)D(r)与圆面积πr2\pi r^2πr2有如下关系lim⁡r→∞D(r)r2π \lim_{r\to\infty}\frac{D(r)}{r^2}\pir→∞lim​r2D(r)​π因此若能快速算出较大整数rrr对应的D(r)D(r)D(r)就可用来估计π\piπ的值。题目要求对于给定的若干整数nkn_knk​1≤nk≤1081\le n_k\le 10^81≤nk​≤108输出nkn_knk​及其对应的D(nk)D(n_k)D(nk​)。输入格式输入文件包含多行每行一个整数nkn_knk​1≤nk≤1081\le n_k\le 10^81≤nk​≤108。输出格式对于第kkk个输入整数nkn_knk​先在第2k−12k-12k−1行输出nkn_knk​再在第2k2k2k行输出D(nk)D(n_k)D(nk​)。样例输入1 2 3 10000 10000000输出1 5 2 13 3 29 10000 314159053 100000000 31415926535867961题目分析直接枚举所有格点检查是否落在圆内时间复杂度为O(r2)O(r^2)O(r2)对于r108r10^8r108完全不可行。我们需要利用圆的对称性和整数运算来加速。由于圆关于xxx轴、yyy轴以及原点都对称我们可以只统计第一象限含坐标轴的格点数再通过对称性乘以444并调整原点计数。具体地对于x0x0x0且y0y0y0的点每个点对应四个对称点(±x,±y)(\pm x,\pm y)(±x,±y)共444个。坐标轴上的非原点格点共有4⌊r⌋4\lfloor r\rfloor4⌊r⌋个(±x,0)(\pm x,0)(±x,0)和(0,±x)(0,\pm x)(0,±x)x1…⌊r⌋x1\dots\lfloor r\rfloorx1…⌊r⌋。原点单独111个。因此D(r)14⌊r⌋4∑x1⌊r⌋⌊r2−x2⌋ D(r)14\lfloor r\rfloor4\sum_{x1}^{\lfloor r\rfloor}\left\lfloor\sqrt{r^2-x^2}\right\rfloorD(r)14⌊r⌋4x1∑⌊r⌋​⌊r2−x2​⌋当rrr为整数时⌊r⌋r\lfloor r\rfloorr⌊r⌋r上式为D(r)14r4∑x1r⌊r2−x2⌋ D(r)14r4\sum_{x1}^{r}\left\lfloor\sqrt{r^2-x^2}\right\rfloorD(r)14r4x1∑r​⌊r2−x2​⌋其中当xrxrxr时根号下为000该项为000所以也可以只加到r−1r-1r−1但统一加到rrr不影响结果。问题的关键转化为快速计算S(r)∑x1r⌊r2−x2⌋ S(r)\sum_{x1}^{r}\left\lfloor\sqrt{r^2-x^2}\right\rfloorS(r)x1∑r​⌊r2−x2​⌋若直接对每个xxx使用浮点数开平方r2r^2r2最大可达101610^{16}1016双精度浮点数无法精确表示所有整数会导致舍入误差。因此必须采用整数方法。解题思路注意到当xxx从111增大到rrr时⌊r2−x2⌋\left\lfloor\sqrt{r^2-x^2}\right\rfloor⌊r2−x2​⌋是单调不增的。我们设yryryr然后从x1x1x1开始遍历。对于每个xxx我们不断减小yyy直到满足y2x2≤r2y^2x^2\le r^2y2x2≤r2此时yyy就是要求的⌊r2−x2⌋\left\lfloor\sqrt{r^2-x^2}\right\rfloor⌊r2−x2​⌋。然后将yyy累加到S(r)S(r)S(r)中。因为yyy在遍历过程中只会减小且每次最多减小111总共减小的次数不超过rrr次。因此整个循环的时间复杂度为O(r)O(r)O(r)空间复杂度为O(1)O(1)O(1)。下面验证算法的正确性。初始时x1x1x1yryryr。显然r21r2r^21r^2r21r2所以yyy会不断减小直到满足不等式。当xxx增大时r2−x2r^2-x^2r2−x2变小所以满足条件的最大yyy不会增大因此yyy的单调性得到保证利用双指针一个指针xxx递增一个指针yyy递减可以线性完成。最后将S(r)S(r)S(r)代入公式即可得到D(r)D(r)D(r)。对于输入中每个nnn独立调用该函数计算。代码实现// Lattice Point// UVa ID: 1549// Verdict: Accepted// Submission Date: 2026-06-20// UVa Run Time: 0.000s//// 版权所有C2026邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;// 计算 D(r)r 为非负整数longlongcountLatticePoints(longlongr){if(r0)return1;longlongr2r*r;longlongyr;longlongsum0;for(longlongx1;xr;x){while(y*yx*xr2)--y;// 调整 y 使 (x,y) 在圆内sumy;// 累加该列上格点数y1..floor(sqrt(...))}// 原点1个 坐标轴上4r个 四个象限内4*sum个return14*r4*sum;}intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);longlongn;while(cinn){coutn\n;coutcountLatticePoints(n)\n;}return0;}总结本题的核心在于利用对称性将四象限计数转化为第一象限求和并利用整数递推避免浮点精度问题将O(r2)O(r^2)O(r2)的暴力枚举优化为O(r)O(r)O(r)的线性扫描。关键技巧是维护一个单调递减的yyy指针使得每一列的yyy值均可通过O(1)O(1)O(1)次调整得到。该方法在r108r10^8r108时循环次数约为2×1082\times 10^82×108次简单整数比较与加减在合理时间内可完成。本题还体现了数学推导与算法优化的结合是计数类问题的常用思路。
RELATED

相关推荐

像素越小画质越差?神经ISP说:0.35μm也能分辨率翻倍

像素越小画质越差?神经ISP说:0.35μm也能分辨率翻倍

一、认知缺口:长焦相机的"物理墙",传统ISP翻不过去智能手机的潜望式长焦镜头这几年卷得厉害——3倍、5倍、10倍光学变焦,参数越来越夸张。但如果你是做安防摄像头的工程师,你面对的现实要骨感得多:Sensor像素…

📅 2026/11/8 13:00:32
车载新诊断框架SOVD---SOVD服务器自动发现机制

车载新诊断框架SOVD---SOVD服务器自动发现机制

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:假若你的生活不够好,不够努力,那么,加油努力吧,不要抱怨&am…

📅 2026/11/8 13:00:32
DM8归档介绍--达梦数据库

DM8归档介绍--达梦数据库

DM8归档介绍--达梦数据库归档类型英文名称核心机制与特点典型应用场景本地归档LOCAL机制:将 Redo 日志写入到本地磁盘的归档文件中。特点:主库在 Redo 日志写入联机日志文件后,由归档线程异步写入;备库收到主库 Redo 日志后&#…

📅 2026/10/7 7:43:19
MORE NEWS

更多资讯

📰

吊车是特种工吗?证书过期了不知道怎么复审延期怎么办?

吊车是特种工吗?证书过期了不知道怎么复审延期怎么办? 证书过期了不知道怎么复审延期?很多人在特种作业领域工作多年,一不小心就忽略了证书的有效期,结果想继续干,发现证没了,这事儿真让人头疼。特别是 吊车是特种工吗…

📰

电工证在运城哪里考2026河南最新政策全知道

电工证在运城哪里考2026河南最新政策全知道 你是不是也遇到过这种情况:想考个电工证,但不知道在运城哪里报名,一打听发现五花八门的培训机构,价格不一,质量参差不齐,怕被中介坑了?2026年河南最新政策出台后,报考流程和审核标准也有了新变化,…

📰

深圳高级电工证报名能用电子证书吗?外省证也能转过来!

深圳高级电工证报名能用电子证书吗?外省证也能转过来! 之前考的证在外省能不能转过来?这个问题我听得太多了,特别是像你这样在驻马店做劳务班组负责人的朋友,经常要带队去深圳、广州这些地方干活,手里有一本 电子证书…

📰

宜兴电工证哪里报名好良心建议

宜兴电工证哪里报名好良心建议 之前考的证在外省能不能转过来?这个是很多电工朋友最关心的问题,尤其是在宜兴本地工作、但证书是外地考的人员,转证流程、材料准备、时间周期都让人头疼。作为干了十多年应急管理工作的老手,我建议大家在报名前,务必搞清楚…

📰

南昌高压电工证考试地址2026河南最新政策怎么选培训机构

南昌高压电工证考试地址2026河南最新政策怎么选培训机构 怕考不过白交培训费?2026河南最新政策出炉,南昌高压电工证考试地址怎么选?别再被培训机构忽悠了,选错就白费钱!本文从信阳浉河区项目现场管理员视角出发,帮你理清高压电工证考试地址、政…

📰

沙洋县电工证培训值不值得考?学历不高也能报名,看这里就明白了

沙洋县电工证培训值不值得考?学历不高也能报名,看这里就明白了 你是不是也担心自己学历不高,报不了电工证?其实,这完全不用担心。 沙洋县电工证培训 的报考条件,对学历要求并不高,只要具备一定的实践经验,基本都能顺利报名。而且, 值不值得考…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬