摘要: 据说这题是经典的凸包题,可以直接套模板,由于刚开始看凸包,因此以它为例题,熟悉一下凸包模板~点集Q的凸包是一个最小的凸多边形P,满足Q中的每个点或者在P的边界上,或者在P的内部,通俗点讲就是,一块木板上有许多铁钉,而凸包就是要求包围了所有这些铁钉的一条拉紧了的橡皮绳所构成的形状。求凸包的一种比较常用的方法的Graham扫描法,其步骤为:步骤1:以y轴最低点为基点,找到基点p0。步骤2:以基点p0为一个坐标系的远点,求各点与基点p0的极角,并一次从小到大排序步骤3:按照顺序,每个点都要判断与其前面的点构成的两条线段转向问题(左转还是右转?用叉积判断)。步骤4:依次下去,知道所有的点结束,就完成的 阅读全文
posted @ 2012-07-17 20:14 Misty_1 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个多边形和每个点的坐标,以及一个圆的圆心坐标和半径,让你判断该园能否放入这个多边形中。思路:先判断该多边形是否是凸多边形,由于给出多边形的坐标可能是顺时针方向也可能是逆时针方向,所以判断时分两种情况,如果是凸多边形,在判断该圆的圆心是否在多边形内部,这也可以用叉乘来判断,最后判断圆心到边的距离是否都大于圆的半径。代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include 阅读全文
posted @ 2012-07-17 11:37 Misty_1 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个1*1的正方形,每条边上都有n个点,由对边上的点连成的线段将正方形分成(n+1)*2个不规则四边形,求其中面积最大的面积。思路:利用叉积求出所有焦点,然后用叉积求四边形面积求的所有的面积找最大的一个~代码:#include <stdio.h>#include <string.h>#include <iostream>#define N 34using namespace std;struct node{ double x , y ;}p[N][N] ;int n ;//叉积求交点struct node point ( struct node p 阅读全文
posted @ 2012-07-17 09:11 Misty_1 阅读(165) 评论(0) 推荐(0) 编辑