贾老师不知道是怎么道听途说地了解到并到处宣扬我做了50道+ 的计算几何题,,明明一道都没有做过的我表示非常无奈,,但是为了不让贾老师收 flag, 我决定要做50道计算几何以示尊敬。【bzoj1007】[HNOI2008]水平可见直线显而易见, 我们最后看见的一定是一个下凸壳, 所以类似凸包那样求一...
分类:
其他好文 时间:
2015-02-02 21:13:51
阅读次数:
199
题目链接:http://poj.org/problem?id=1385题目大意:给你一个多边形的点,求重心。首先,三角形的重心: ( (x1+x2+x3)/3 , (y1+y2+y3)/3 )然后多边形的重心就是将多边形划分成很多个三角形,以三角形面积为权值,将每个三角形的重心加权平均。注意:pai...
分类:
其他好文 时间:
2015-01-24 15:45:28
阅读次数:
149
题目大意:现在有一个普通时钟,有时针、分针、秒针,秒针不是一秒一秒间断走的,而是连
续走的。给你一个度数D(小于等于120°)。求:24小时中,三个指针超过这个度数的时间占所
有时间的百分比是多少。
思路:之前想的按每秒模拟一遍就可以了。没想到时间是连续的,而不是间隔的,参考了评论
区才知道怎么去做。顺便膜拜大神。。。
三个指针走的角速度:
秒针速度S = 6°/s,分针速度M = (1/10)°/s,时针速度H = (1/120)°/s
这三个指针两两之间的相对速度差为:
秒时相差S_H = (719/1...
分类:
其他好文 时间:
2015-01-17 19:32:53
阅读次数:
202
这题就是简单的几何题,刚接触ACM做这题时,不会写,当时想的太复杂了,把矩形的各种情况组合都考虑到了,结果发现这样太复杂就放弃了。今天做这道题时,我突然发现既然题目给的是对角线的坐标,为什么不用对角线之间的关系来判别矩形之间的位置关系呢?于是思路就很简单的涌现出来了。只要画个图,就能明白两者之间对角线的关系。
#include
#include
#include
double _max(doub...
分类:
其他好文 时间:
2015-01-12 21:08:17
阅读次数:
188
题目大意:给定n个点(n
逗我?n
其实数据是随机生成的 经过验证 随机生成50w的点集 平均在凸包上的点在50~60个左右
于是求凸包之后就可以随便乱搞了- - 不会写O(n^3)的最小圆覆盖 写了O(n^4)的照过
注意最小圆覆盖时要讨论有两点在圆上和有三点在圆上两种情况
--------------------以上是题解-----------以下是粗口---------------...
分类:
其他好文 时间:
2014-12-26 18:46:13
阅读次数:
170
题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小
与3170不同的是这次选择的点无需是n个点中的一个
首先将每个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一半就是原点之间的切比雪夫距离
由于曼哈顿距离中横纵坐标不互相干扰,因此我们可以将横纵坐标分开处理
每一维要选一个坐标 到其他所有坐标的绝对值之和相等 很容易想到中位数
但是直接选择中位数得到的...
分类:
其他好文 时间:
2014-12-23 14:00:41
阅读次数:
146
题目大意:给定平面上的n个点,求这n个点中的一个点到这n个点的切比雪夫距离之和最小
切比雪夫距离,即各坐标差绝对值的最大值
首先我们如果想把曼哈顿距离转化成切比雪夫距离 那么就要把点(x,y)变成(x+y,x-y) 这样新点之间的切比雪夫距离就是原点之间的曼哈顿距离
同理,我们可以把切比雪夫距离转化成曼哈顿距离 即把点(x,y)变成((x+y)/2,(x-y)/2)
然后将横纵坐标排序 维...
分类:
其他好文 时间:
2014-12-23 12:26:54
阅读次数:
145
题目大意:有一个直角拐角,给你水平道路宽度Y和竖直高度X,再给你汽车的长l,宽w
问:汽车是否能通过这个拐角。
思路:如果汽车的宽度大于水平道路宽度Y或是竖直高度X,无论如何都通不过。接下来
考虑一般情况。
如图:若汽车最左边与墙一直靠紧,则只需要判断右边最高点是否超过了Y。
设θ为汽车与水平方向的夹角,s为汽车最右边的角到拐点的水平距离。那么
s = l*cos(θ) + w*sin(θ) - x,从而得出 h = s*tan(θ)+w*cos(θ)。
θ角从0~π/2,变化,h则从低到高再到底,且是一个...
分类:
其他好文 时间:
2014-12-17 09:48:36
阅读次数:
243
题意: 有很多点,从最右下角的点开始走起,初始方向水平向右,然后以后每步只能向左边走,问最多能走多少个点。解法: 贪心的搞的话,肯定每次选左边的与它夹角最小的点,然后走过去。 然后就是相当于模拟地去选点,然后计数,然后走过去。这题就这么搞定了。我这里用了set和vector。代码:#include ...
分类:
其他好文 时间:
2014-12-12 23:33:08
阅读次数:
180