`
hulunberbus
  • 浏览: 894685 次
文章分类
社区版块
存档分类
最新评论

【转载】ACM计算几何题目推荐

 
阅读更多

一。基础题目
1.1 有固定算法的题目

A, 最近点对问题
最近点对问题的算法基于扫描线算法。
ZOJ

2107 Quoit Design 典型最近点对问题
POJ 3714 Raid 变种最近点对问题

B,最小包围圆
最小包围圆的算法是一种增量算法,期望是O(n)。
ZOJ 1450 Minimal Circle
HDU 3007 Buried memory

C,旋转卡壳
POJ 3608 Bridge Across Islands 旋转卡壳解两凸包最小距离
POJ 2079 Triangle 旋转卡壳计算平面点集最大三角形

1.2 比较简单的题目
HDU 3264 Open-air shopping malls ,圆面积相交问题,如果用二分法做的话不难
CII 3000 Tree-Lined Streets,几何+贪心
CII 4676 Geometry Problem,模板题
HDU 3272 Mission Impossible,枚举+镜面反射思想
POJ 3334 Connected Gheeves,二分答案,面积判定
POJ 1819 Disks,模拟一下
CII 3905 Meteor,貌似还是比较简单
ZOJ 2589 Circles,平面图的欧拉定理,圆的相交
POJ 2194 Stacking Cylinders,向量旋转


二。经典算法

2.1 三角剖分
三角剖分这个东西貌似去年流行了一下,高校联赛时某U连续出了两次。实际上对多边形进行三角剖分是一个很常见的算法思想,因为三角形是一个比较简单的凸多边形,可以对两个三角形比较容易地求公共面积,这也是三角剖分最常见的用途。对这个算法进行扩展,就可以求两个简单多边形的面积交了。主要是理解有向面积的概念。

第一类是圆与三角形的相交,主要做法是分情况讨论。
POJ 3675 Telescope 三角形剖分,圆与三角形的交
POJ 2986 A Triangle and a Circle 三角形剖分,圆与三角形的交
ZOJ 2675 Little Mammoth 三角形剖分,圆与三角形的交

第二类是多边形与多边形相交。
HDU 3060 Area2 简单多边形面积并,三角剖分

三角形剖分的另一种变种是梯形剖分,应用起来稍有局限性,但是比三角形剖分好写。
POJ 3148 ASCII Art 多边形梯形剖分,半平面交

多边形的重心问题,也是三角形剖分的应用:
CII 4426 Blast the Enemy!

2.2 极角排序
顾名思义,极角排序一般就是有一个圆心的问题,将平面上各个点按照与圆心极角进行排序。然后就可以在线性扫描之中解决一些统计问题。不过这类问题就稍稍超出计算几何范畴了。

UVA 11696 Beacons 颇为经典的极角排序的统计问题,记得darkgt大牛有一篇文章提到这个题目。
CII 4064 Magnetic Train Tracks,极角排序的统计问题,补集思想。
UVA 11704 Caper pizza
POJ 2280 Amphiphilic Carbon Molecules,极角排序相当巧妙地解决了这个问题。


2.3 扫描线算法

扫描线算法,需要使用到平衡树辅助,写起来比较复杂(对于本菜而言)。关于平衡树,我建议是直接使用STL的set或map。所以你需要掌握一些C++的知识,才能够看懂一份使用了map与set的代码。当年学习OI牛的代码我看得很纠结。不过只要理解了“事件点”这一个概念后就比较好办了。

HDU 3124 Moonmist 二分+扫描线。最近圆对,不存在改编最近点对的方法。不过当时数据弱,很多人乱搞过了
POJ 2927 Coneology 平衡树+扫描线,与上题类似。

下面两个题目都是关于多边形的扫描线算法,关于平面上许多凸多边形套了多少层的问题。
CII 4125 Painter ,这个是Final题,比较简单,是判断三角形嵌套层数的。
UVA 11759 IBM Fencing,上题是三角形,这题是多边形,稍稍难了一点。不过理解好扫描线算法的话应该没有问题。


2.4 其他题目
POJ 3528 Ultimate Weapon,模板化的三维凸包。知道几个三维有向体积的概念即可比较容易理解三维凸包的算法。三维凸包算法又是一种增量算法。


三。不确定算法/极值问题
POJ 3301 Texas Trip ,算是一种模拟退火求极值的问题,通过平面旋转找到最佳答案。
SPOJ 4409 Circle vs Triangle(AREA1),也是模拟退火
UVA 11562 Hard Evidence,应用三分极值法求极值。

四。传统几何、公式题

UVA有一个名叫Shahriar Manzoor喜欢出这些题目,喜欢这类题目的同志可以研究一本名叫《近代欧式几何学》的书。不过这些题目一般中学几何知识能够解决。
CII 4413 Triangle Hazard,梅涅劳斯定理,想不到SCNU校赛出到了
UVA 11524 InCricle,三角形内切圆性质联立海伦公式
CII 4714 In-circles Again,还是公式推导
POJ 2208 Pyramids,欧拉四面体公式

五。几何结合其他算法,麻烦题
转自:
http://www.cppblog.com/zzfmars/articles/121794.html
HDU 2297 Run,百度杯的题目,利用到了zzy的半平面交的极角排序思想。
CII 4448 Conduit Packing,问一个大圆能否放下四个小圆。颇为变态的Final题,算法都很基础,就是二分一个答案,枚举两个已知圆,求与已知的两圆公切的第三个圆,枚举放置的位置……关键是不好想。
CII 4510 Slalom 几何+最短路
UVA 11422 Escaping from Fractal Bacterium ,麻烦题,主要还是向量旋转。
HDU 3228 Island Explorer,利用了最小生成树的性质。
CII 4499 Camera in the Museum,有关圆形处理的,很不错的题目。
CII 2395 Jacquard Circuits,Pick公式的应用
POJ 3747 Scout YYF II,又是一个几何问题,需要猜想一下。
POJ 3336 ACM Underground,几何预处理,并查集
CII 4428 Solar Eclipse,也是不错的题目,涉及圆的问题
CII 4206 Magic Rings,dancing links解重复覆盖问题,二分,百度杯也有个类似的题目。
POJ 1263 Reflections,与下面一个题目都是一类光线在球面上反射问题。解决方法是解析几何,参数方程,向量旋转等等。
CII 4161 Spherical Mirrors,上面题目的三维版本。
POJ 3521 Geometric Map,复杂的预处理,可以用于自虐
CII 3270 Simplified GSM Network 虽然有着V图的模型,但是规模小,所以无须出动V图算法,用半平面交即可。变态级的V图算法可以咨询三鲜教主。
CII 4617 Simple Polygon,平面上有一堆点,叫你用一笔画把这些点连起来,连成一个闭合的简单多边形,线不允许出现相交。改造一下凸包算法即可。

当然,除了上述的题目外,还有许多比较精彩的计算几何题目等待大家发掘
分享到:
评论

相关推荐

    ACM计算几何模板大全 几何 多边形 凸包 三维 圆

    在计算几何领域,ACM(Association for Computing Machinery)竞赛经常涉及到一系列复杂的几何问题,这些问题需要高效的算法和精确的数学模型来解决。本模板大全旨在为参赛者提供一个全面的参考框架,涵盖了从二维到...

    经典!ACM计算几何geography资料打包-

    在ACM(国际大学生程序设计竞赛)中,计算几何是一个重要的领域,它涉及到数学、计算机科学和算法设计的交叉部分。这份"经典!ACM计算几何geography资料打包-"包含了丰富的资源,帮助参赛者深入理解和掌握计算几何的...

    南京邮电大学ACM计算几何

    南京邮电大学ACM计算几何课程主要探讨了计算几何中的基础概念、操作技巧以及常见问题。计算几何在算法竞赛如ACM(国际大学生程序设计竞赛)中是一个重要的领域,涉及几何对象的处理和分析。 首先,计算几何中常用的...

    ACM 计算几何 必看

    在计算几何中,由于涉及到浮点数的运算,通常推荐使用`double`类型,因为`float`可能在某些情况下丧失精度。例如,判断一个`double`类型的数`x`是否接近0,应当使用`x < eps && x > -eps`,其中`eps`是一个较小的...

    ACM计算几何大全

    一、 注意事项 4 二、 一些公式 4 三、二维相关 6 基础: 6 点-点距离 7 点-点对称点 7 点-线对称点 7 点在直线上的投影 7 点到线段的距离(求得最近点) 7 点到直线距离(求得最近点) 7 点到直线距离 7 ...

    jisuanjihe.rar_acm计算几何

    ACM(Association for Computing Machinery)竞赛中,计算几何也是一项常见且具有挑战性的题目类型。本文将基于“jisuanjihe.rar_acm计算几何”资源,对其中包含的模版进行解析,并为初学者提供一份详尽的学习指南。...

    ACM计算几何源码

    凸包是计算几何中的一个基础问题,旨在找到一组点构成的最小凸多边形,使得所有的点都在这个多边形内部或边界上。在ACM竞赛和实际应用中都非常常见。 #### Graham扫描法实现 Graham扫描法是一种经典的凸包构建方法...

    ACM计算几何模板

    ### ACM计算几何模板知识点 #### 精度处理 在计算几何中,处理浮点数时经常遇到精度问题。为了确保结果的准确性,通常需要定义一个极小的正数`eps`来比较浮点数之间的差异。例如: ```cpp inline int sgn(double a...

    北大acm计算几何专题详解

    计算几何在ACM竞赛中的应用不仅限于纯计算几何题,还经常用于提升代码量的题目,如枚举几何、向量几何和数值几何。这类题目通常需要参赛者具备良好的空间想象能力,能够将几何问题转化为可计算的模型。 以“骰子上...

    计算几何题目及专题测试

    可能是某个ACM(国际大学生程序设计竞赛)的题目,ACM竞赛通常包含大量的算法挑战,计算几何就是其中一类常见的题目类型。参赛者需要编写高效代码来解决这些几何问题。 接着,"1778.ppt"同样没有明确的描述,但可能...

    ACM计算几何基础模板,杭电老学长精心整理.pdf

    由于ACM竞赛题目广泛涉及各种算法,掌握计算几何的基础模板对于快速解决竞赛中的几何问题至关重要。 描述部分提到了点、线、多边形、凸多边形、圆、半平面交等算法的板子,这代表了计算几何在竞赛中的应用范畴。一...

    ACM 计算几何模板

    《ACM计算几何模板》是为参加ACM(国际大学生程序设计竞赛)的选手们提供的一份详尽的计算几何基础知识和算法集。这份模板涵盖了从二维到三维几何图形的基本属性、运算方法以及一系列相关问题的解决方案。 1. 几何...

    2014 PKU ACM 计算几何

    2014 PKU ACM 计算几何,本资料完整的讲解了计算几何的各个专题,主要是基础知识的讲解和各类算法的思想的讲解,没有具体的代码。

    ACM计算几何

    对学习ACM的计算几何有一定的帮助,对于初学计算几何的更好的了解几何

    计算几何 acm

    ### 计算几何在ACM/ICPC中的应用与技巧 #### 一、计算几何概述 计算几何作为一门学科,主要研究如何利用算法解决几何问题。随着计算机技术的发展,计算几何在诸多领域得到了广泛的应用,例如计算机图形学、计算机...

    ACM几何题模板

    ### ACM几何题模板知识点解析 #### 一、概述 在ACM竞赛中,几何问题是常见且重要的题目类型之一。为了高效地解决这类问题,掌握一些基础的几何模板和公式是十分必要的。本篇将详细介绍一些常用的几何公式及其应用...

    acm计算几何与数论

    ### ACM计算几何与数论知识点概述 #### 一、数学部分 ##### (1) 组合数学 **1. 加法原理与乘法原理** - **加法原理**:如果两个事件A和B是互斥的(即不可能同时发生),那么事件A或B发生的概率等于各自发生的...

    浙江大学ACM模板 计算几何,图论,数据结构,经典题的模板

    ACM Fighting! 2 1.计算几何 5 1.1 注意 5 1.2几何公式 6 1.3 多边形 8 1.4多边形切割 11 1.5 浮点函数 12 1.6 面积 18 1.7球面 18 1.8三角形 19 1.9三维几何 22 1.10 凸包 30 1.11 网格 32 1.12 圆 33 1.13 矢量...

    ACM竞赛中计算几何相关论文、代码

    6. **题目列表**:这部分内容可能包含了历年来ACM竞赛中涉及计算几何的题目,这些题目可以帮助参赛者了解并熟悉这一领域的常见问题类型和解决思路。 通过深入学习这些论文和代码,ACM竞赛的参与者可以提高自己在...

Global site tag (gtag.js) - Google Analytics