Problem Description
Matt has a company, Always Cook Mushroom (ACM), which produces high-quality mushrooms.
ACM has a large field to grow their mushrooms. The field can be considered as a 1000 *...
分类:
编程语言 时间:
2014-10-30 23:55:44
阅读次数:
309
题目大意:n个圆盘依次下落,求最终能看到的轮廓线面积
円盘反对!让我们一起团结起来!赶走円盘!
咳咳。很神的一道题 今天去看了题解和白书才搞出来……
首先我们倒着做 对于每个圆盘处理出在它之后落下的圆盘和它的覆盖区间 然后求一个区间并就能算出这个圆盘的可见弧长
然后就是相交部分怎么求的问题了
首先两个圆必须相交 然后作圆心1到圆心2的向量 用atan2求出极角 然后利用余弦定理求出两个交...
分类:
其他好文 时间:
2014-10-29 09:17:04
阅读次数:
160
简单多边形是指各边不相交的多边形。首先计算出所有顶点中心位置。然后求每个顶点与中心的极角。再对极角进行排序。连接排序后的点就行了。结果如下:matlab代码如下:clear all;close all;clc;n=30;p=rand(n,2);cen=mean(p);ang=atan2(p(:,1)...
分类:
其他好文 时间:
2014-10-04 23:40:17
阅读次数:
294
大水题=_=,可我想复杂了…… 很裸的暴力,就是加了个小优化…… 叉积求面积 :abs(xi*yj - yi*xj) 所以去掉绝对值,把 xi 和 xj 提出来就可以求和了 去绝对值加个极角排序,每次把最左边的点当成原点,然后剩下的排序,接着枚举第二个点,求叉积之和…… 坐标都是整数,用...
分类:
其他好文 时间:
2014-10-04 19:53:47
阅读次数:
291
题目大意:平面内有一些点,我们要通过一些方式来走遍这所有的点,要求一个点只能走一次,只能向左转而不能向右转。求遍历这些点的顺序。
思路:数据范围是可以怎么搞都0ms的(n
只能左转,想想好像有点像凸包啊。但是这个题要遍历所有的点,所以就把已经走过的点删掉,然后像凸包一样的往前走,每次找一个没走过的极角最小的点走,然后把它标记上。最后都走完就全部遍历完了。
CODE:
...
分类:
其他好文 时间:
2014-09-25 11:57:58
阅读次数:
219
题目大意:
在一个1000*1000的二维平面上,每一个整点都有一个权值,权值大小是 the production in the grid points (x, y) is (x + A)(y + B) where A, B are two constant.
思路分析:
先离线处理出所有的询问,对于每一个询问都有一个极角,按照极角排序。
然后对于平面上每一个点,都依次的加入到B...
分类:
其他好文 时间:
2014-09-25 03:55:08
阅读次数:
247
题目大意:按顺序给出一些点。可以构成一个多边形,问多边形是否有核。
解题思路:
半平面交。模版题。
用的是ZZY的O(Nlogn)的算法。
算法大体思路是这样的:
step1. 将所有半平面按极角排序,对于极角相同的,选择性的保留一个。 O(nlogn)
step2. 使用一个双端队列(deque),加入最开始2个半平面。
step3. 每次考虑一个新的半平面:
a.whi...
分类:
其他好文 时间:
2014-08-28 14:55:09
阅读次数:
264
题目链接题意 : 对输入的点极角排序思路 : 极角排序方法#include #include #include #include using namespace std;struct point{ double x,y;}p[50],pp;double cross(point a,point ...
分类:
其他好文 时间:
2014-08-28 14:45:59
阅读次数:
175
题目大意:
在平面上有一些点,每个点都有0,1其中一个属性。要求用一条直线将平面分成两部分。其中一部分取属性为0的点,另一部分取属性为1的点。若点在直线上全部取走,问最多能取多少个点。
解题思路:
扫描线算法。枚举任意一点,其他点依照那一点进行极角排序。扫描获得最大值。
注意:
1、因为 atan2方式的极角排序有精度误差,在这里需要用叉积方式排序。否则就...
分类:
其他好文 时间:
2014-08-25 21:11:44
阅读次数:
226
水平序 Graham 扫描算法:计算二维凸包的时候可以用到,Graham 扫描算法有水平序和极角序两种。极角序算法能一次确定整个凸包,但是计算极角需要用到三角函数,速度较慢,精度较差,特殊情况较多。水平序算法需要扫描两次,但排序简单,讨论简单,不易出错。【算法流程】
分类:
其他好文 时间:
2014-08-18 10:42:53
阅读次数:
197