计算几何
文章平均质量分 59
穆梓先生
人之为学有难易乎?学之则难者亦易矣,不学则易者亦难矣!
展开
-
hdu 1086 You can Solve a Geometry Problem too(求所有线段相交点的个数)
判断线段是否相交 快速排斥实验跨立实验介绍 :求线段是否相交如图,判断点C和点D是否在线段AB的两侧,需要判断向量(AC)和向量(AB)的叉集 与向量(AD)和向量(AB)的叉集是否是异号的。同理还需要判断 点AB是否在线段CD两侧#include<stdio.h> #include<string.h> #include<iostream> using name...转载 2018-04-26 20:52:24 · 217 阅读 · 0 评论 -
xynu 2139: 德莱联盟(判断线段是否相交 )
#include<stdio.h> using namespace std; const double eps = 1e-10; struct Node { double x, y; }; bool lineInSide( Node A, Node B, Node C, Node D) { // A(x1, y1), B(x2, y2)的直线方程为: /...原创 2018-04-26 20:54:41 · 160 阅读 · 0 评论 -
hdu 1140 War on Weather(基础几何问题)
给你 k个位于天空的卫星,m个位于地球的靶子。求卫星能打到多少靶子。卫星所能到达的最远距离就是卫星与地球的切线距离,等于地球圆心(0 ,0,0)与卫星的距离的平分减去地球半径(已知周长)的平方的开方。然后判断卫星与靶子的距离是否 小于那个距离即可#include<stdio.h> #include<math.h> using namespace std; #define P...原创 2018-04-27 10:44:26 · 294 阅读 · 0 评论 -
hdu 1115 Lifting the Stone(求重心的坐标)
模板#include<stdio.h> using namespace std; struct point { double x, y; }node[1000001]; point bcenter(point pnt[], int n) { point p, s; double tp, area = 0, tpx = 0, tpy = 0; p.x = pnt[0].x; ...原创 2018-04-27 10:45:58 · 134 阅读 · 0 评论 -
hdu 1348 wall
题意:给出二维坐标轴上 n 个点,这 n 个点构成了一个城堡,国王想建一堵墙,城墙与城堡之间的距离总不小于一个数 L,求城墙的最小长度,答案四舍五入。思路:城墙与城堡直线长度是相等的,当城堡出现拐角时,城墙必然会出现一段圆弧,这些圆弧最终会构成一个半径为 L 的圆,所以答案就是凸包的周长 + 圆的周长。#include <iostream> #include <cstdio>...转载 2018-04-27 15:47:46 · 161 阅读 · 0 评论 -
hdu 1392 Surround the Trees(凸包模板)
凸包: 给你n个散落的点,让你求出最小的凸多边形将所有的点包括起来,或者点在边上。注意 n=1和n=2的情况#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; ...原创 2018-04-27 16:08:41 · 132 阅读 · 0 评论 -
hdu 2318 TOYS
给出一个矩形范围,给出n条线段,这n条线段一定与矩形上下边界相交且互不相交,将矩形分成n+1个划分。给出m个玩具的坐标。求每个划分放的玩具数,玩具保证不会在线段和左右边界上。分析:判断点是否在两条直线中间,利用叉积,如果在两条直线间,必定会有两个叉积一个小于0,一个大于0(不能把相乘小于0作为判断条件)#include<stdio.h> #include<string.h>...转载 2018-04-27 21:34:10 · 183 阅读 · 0 评论