计算几何
TommyTT
我擦,要挂科了。
展开
-
hdu 3264 Open-air shopping malls 求两圆相交
对每个圆二分半径寻找可行的最小半径,然后取最小的一个半径。 对于两圆相交就只要求到两个扇形,然后减去两个全等三角形就行了。 #include #include #include #include using namespace std; #define pi acos(-1.0) #define eps 1e-8 #define maxn 50 int n; struct point{原创 2014-06-29 09:51:45 · 758 阅读 · 0 评论 -
hdu 1700 Points on Cycle 水几何
已知圆心(0,0)圆周上的一点,求圆周上另外两点使得三点构成等边三角形。 懒得推公式,直接用模板2圆(r1=dist,r2=sqrt(3)*dist)相交水过 #include #include #include #include #include using namespace std; #define eps 1e-6 typedef long long ll; inline double原创 2014-06-29 12:47:26 · 787 阅读 · 0 评论 -
hdu 4063 Aircraft 计算几何+最短路
易知最短路一定是以圆心或者两圆交点作为中间点到达的。所以把这些点拿出来建图跑最短路就够了。 现在的问题就是,给定两个点,能否连边 add(a,b,dist(a,b)) 题目要求,ab线段必须完全在圆上,所以可以求出ab线段和所有圆的所有交点,对于任意相邻两个交点,它们必处于同一个圆内,否则不可达。点的编号用map就够了(一开始我以为double有精度问题无法map,用两个longlong保存然原创 2014-10-16 16:21:03 · 1150 阅读 · 0 评论