摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1348这题是在求凸包的基础上,再求每个顶点对应角度及半径的弧长,外面围墙的直线部分与城墙的凸包长相同;再求弧长总和,注意每段弧长对应的角与凸包顶点的夹角是一样的,所以,又因为每个顶对应的半径长都是l,所以一个多边形的所顶点对应弧长相加其实就是一个圆。所以,最后总长为 凸包边长+2*3.141592653*l(l为已知与城堡的最远距离)#include#include#define PI 3.141592653struct node{ double x,y;}p[11000];int hash[11000];. 阅读全文
posted @ 2013-08-21 17:13 执着追求的IT小小鸟 阅读(243) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1392这题是凸包的模板题目……看算法后纯原创+_+思路:1:在输入的时候就保留住最下面而又靠左的点,这点为起点p0;设置hash表为是否访问过该点,因为结束标志是找到下一个顶点为p0,所以初始化时不可以将p0点赋为已经访问做n个循环,pi保留下一个要开始求凸包边的点2:循环从P0开始,设置点Pj也是p0,然后3:将j从0开始,找到所以的未访问的点,依次和pi,pj进行叉乘,(j-pi)×(pj-pi),大于0时j在pj顺时针方向,小于0就在逆时针方向。等于0时则共线,返回距离较远的那个点,结果保留在 阅读全文
posted @ 2013-08-21 11:38 执着追求的IT小小鸟 阅读(249) 评论(9) 推荐(0) 编辑