题意:有n个选手,铁人三项有连续的三段,对于每段场地选手i分别以vi, ui 和 wi匀速通过。对于每个选手,问能否通过调整每种赛道的长度使得他成为冠军(不能并列)。分析:粗一看,这不像一道计算几何的题目。假设赛道总长度是1,第一段长x,第二段长y,第三段则是1-x-y那么可以计算出每个选手完成比赛...
分类:
其他好文 时间:
2014-10-21 23:04:12
阅读次数:
171
题目大意:一个人非常信“Feng Shui”,他要在房间里放两个圆形的地毯。这两个地毯之间可以重叠,但是不能折叠,也不能伸到房间的外面。求这两个地毯能够覆盖的最大范围,并输出这两个地毯的圆心。
思路:我们当然希望这两个圆形的地毯离得尽量的远,这样的话两个圆之间的重叠区域就会越小,总的覆盖区域就越大。那我们就先把每一条边向内推进地毯的半径的距离,然后求一次半平面交,这个求出的半平面的交集就...
分类:
其他好文 时间:
2014-10-21 15:31:14
阅读次数:
205
题目大意:给出一个岛的海岸线的轮廓,求这个岛上的所有点到海岸的最长距离是多少。
思路:求多边形内切圆的问题要用二分+半平面交解决。二分半径的长度,然后将所有的边向左侧移动这个二分的长度,然后利用半平面交来判断是否能够满足条件。如果满足条件就提高下界,否则减小上界。
我的移动的方法是这样的,首先每条边都要用点向量式来表示,就是边上任意一点和这条边的方向向量。这样做以后的操作会方便很多。然...
分类:
其他好文 时间:
2014-10-21 13:52:52
阅读次数:
139
题目大意:一个楼有很多层,每一层是一个多多边形,问每一层是否有点能够看到这一层的全貌。
思路:半平面交解多边形内核存在性,裸题。题中怎么没写数据范围?。。让我还re几次。。
CODE:
#include
#include
#include
#include
#include
#define MAX 3010
#define EPS 1e-8
#define DCMP...
分类:
其他好文 时间:
2014-10-21 12:25:52
阅读次数:
158
题意:给出一个凸n边形,求多边形内部一点使得该点到边的最小距离最大。分析:最小值最大可以用二分。多边形每条边的左边是一个半平面,将这n个半平面向左移动距离x,则将这个凸多边形缩小了。如果这n个半平面交非空,则存在这样距离为x的点,反之则不存在。半平面交的代码还没有完全理解。和凸包类似,先对这些半平面...
分类:
其他好文 时间:
2014-10-21 11:52:38
阅读次数:
152
题目大意:定义一种多边形,叫做星形多边形。这种多边形就是有内核的多边形。给出一些多边形,问是否是星形多边形。
思路:利用半平面交求解。PS:我的第一个多边形内核的代码不对。。一定要看这个,这个是我看了学长的代码之后才发现之前的代码的问题的,这个也不用微调,是准确值,总值千万不要去看前面的那篇!!!!
由于内核中的所有点到图形上所有点的连线之间不能有边阻挡,所以为了满足任意一条边,需要满...
分类:
其他好文 时间:
2014-10-20 19:33:21
阅读次数:
202
题目大意:按顺序给出一个多边形的顶点,求这个多边形内核的面积。答案保留两位输出。
思路:半平面交。加边的时候要讨论一下第一个点和最后一个点,否则会wa的很惨。
CODE:
#include
#include
#include
#include
#include
#define MAX 1510
#define EPS 1e-8
#define DCMP(a) (...
分类:
其他好文 时间:
2014-10-20 15:12:19
阅读次数:
247
题目大意:多边形求内核模板题
思路:半平面交,我用的是O(nlogn)的半平面交,但是有一个问题,就是当多边形内核是一个点的时候,半平面交所得到的答案是空集合,但是输出应该是yes,实在没有什么好的解决方法,最后只能把所有直线向右移动,然后在求内核。但是这样做eps的不同取值有的时候能A有的时候不能A。有没有什么好的解决方法啊!!!求解答啊!!!
CODE:
#inclu...
分类:
其他好文 时间:
2014-10-20 11:46:27
阅读次数:
189
题目大意:给出一些笛卡尔系中的一些直线,问从(0,+∞)向下看时能看到哪些直线。
思路:半平面交可做,但是显然用不上。类似于求凸包的思想,维护一个栈。先将所有直线按照k值排序,然后挨个压进去,遇到有前一个交点被挡住的话就先弹栈。
比较闹心的是去重。我的方法是压栈之前先去重,然后在处理。
CODE:
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-10-17 18:54:42
阅读次数:
153
题目大意:给定n条直线,求从上到下俯瞰能看到哪些直线
半平面交的裸题
首先将所有直线按照斜率排序,依次入栈
如果一条直线和栈顶的交点在栈顶直线和栈顶下面那条直线的交点的左侧,则删除栈顶
若多条直线斜率相同,只插入截距最大的那条直线
最后记录答案输出即可
#include
#include
#include
#include
#include
#define M 50500
using ...
分类:
其他好文 时间:
2014-10-17 15:36:56
阅读次数:
216