
训练指南-第四章
文章平均质量分 81
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
uva 1318 - Monster Trap(bfs+暴力)
题目链接:uva 1318 - Monster Trap每条线段2个点,加上起点终点一个是202个点,暴力判断连点之间是否可达,可达建边。因为线段有厚度考虑,所以将线段延伸一点再处理,这样原本共用一端点的线段变成相交。特殊情况是三点共线,这是判断延伸后的点是否落在其他线段上,如果是就不考虑这个点。最后做一遍bfs。#include #include #include原创 2015-08-21 23:07:48 · 1023 阅读 · 0 评论 -
uva 11928 - The Busy Dog(几何)
题目链接:uva 11928 - The Busy Dog#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-6;inline int dcmp (double x) { if (fab原创 2015-08-17 21:26:47 · 675 阅读 · 0 评论 -
uva 10585 - Center of symmetry(水)
题目链接:uva 10585 - Center of symmetry#include #include #include using namespace std;typedef long long ll;struct Point { ll x, y; void read() { scanf("%lld%lld", &x, &y); } bool operator原创 2015-08-17 21:25:51 · 730 阅读 · 0 评论 -
uva 10075 - Airlines(几何+最短路)
题目链接:uva 10075 - Airlines在球面上处理出两点的距离,Floyd处理。#include #include #include #include #include #include //#include using namespace std;/* d = r*sqrt(2-2*(cos(lat1)*cos(lat2)*cos(lon1-原创 2015-08-17 21:19:03 · 901 阅读 · 0 评论 -
uva 1308 - Viva Confetti(几何)
题目链接:uva 1308 - Viva Confetti枚举一下两圆,处理出所有弧,然后判断每段弧的中点是否可见,可见的话该弧所在的圆也可见,以及该段弧下面的圆也可见。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);原创 2015-08-17 21:00:52 · 917 阅读 · 0 评论 -
uva 10556 - Biometrics(几何)
题目链接:uva 10556 - Biometrics旋转角度可长度比例相同即可,注意精度。#include #include #include using namespace std;typedef long long ll;struct Point { ll x, y; void read() { scanf("%lld%lld", &x, &y);原创 2015-08-17 21:23:57 · 1071 阅读 · 0 评论 -
uva 10969 - Sweet Dream(几何)
题目链接:uva 10969 - Sweet Dream枚举两圆,获得交点,这样每个圆就被分成若干段弧,判断每段弧时候可见。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-1原创 2015-08-17 21:16:57 · 679 阅读 · 0 评论 -
uva 1301 - Fishnet(几何+枚举)
题目链接:uva 1301 - Fishnet#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-14;inline int dcmp (double x) { if (fabs(x)原创 2015-08-17 21:13:55 · 575 阅读 · 0 评论 -
uva 1333 - Model Rocket Height(几何)
题目链接:uva 1333 - Model Rocket Height#include #include #include #include using namespace std;const double eps = 1e-9;const double pi = 4 * atan(1);inline int dcmp(double x) { if (fabs(x)原创 2015-08-31 23:06:53 · 952 阅读 · 0 评论 -
uva 503 - Parallelepiped walk(几何)
题目链接:uva 503 - Parallelepiped walk恶心题,将三维转成两维,直线距离最短,WA了一天。假设起点在地面,除了考虑经过0,1个面的可能,还要考虑经过两个面到达的可能。后面提供一个生成数据的代码。#include #include #include using namespace std;typedef long long ll;con原创 2015-08-17 21:33:36 · 1193 阅读 · 0 评论 -
uva 10335 - Ray Inside a Polygon(几何)
题目链接:uva 10335 - Ray Inside a Polygon恶心题,注意精度和输出等问题,代码中有标识,后面有一些数据。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps =原创 2015-08-17 21:22:14 · 722 阅读 · 0 评论 -
uva 12304 - 2D Geometry 110 in 1!(几何)
题目链接:uva 12304 - 2D Geometry 110 in 1!没什么好说的,根据操作直接处理。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-9;inlin原创 2015-08-17 20:42:48 · 1039 阅读 · 0 评论 -
uva 11796 - Dog Distance(几何)
题目链接:uva 11796 - Dog Distance将一只狗位移向量加到另一只上,即变成点到线段的最短距离。#include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-9;inline int d原创 2015-08-17 20:39:46 · 720 阅读 · 0 评论 -
uva 1342 - That Nice Euler Circuit(欧拉定理)
题目链接:uva 1342 - That Nice Euler Circuit欧拉定理:边数-点的个数+2=面数#include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-9;inline int dc原创 2015-08-17 20:37:16 · 693 阅读 · 0 评论 -
uva 11178 - Morley's Theorem(几何)
题目链接:uva 11178 - Morley's Theorem直接按照题意处理。#include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-9;inline int dcmp (double x原创 2015-08-17 20:34:56 · 628 阅读 · 0 评论 -
uva 11524 - InCircle(几何)
题目链接:uva 11524 - InCircle#include #include #include #include using namespace std;const int maxn = 3;double cal (double a, double b, double c) { return a + b - c;}int main () { int cas原创 2015-08-05 09:05:58 · 602 阅读 · 0 评论 -
uva 11800 - Determine the Shape
题目链接:uva 11800 - Determine the Shape#include #include #include #include using namespace std;const int maxn = 4;const double eps = 1e-6;const char T[6][30] = {"Square", "Rectangle", "Rhombu原创 2015-08-05 09:07:06 · 834 阅读 · 0 评论 -
uva 361 - Cops and Robbers(凸包)
题目链接:uva 361 - Cops and Robbers点P在点集S中某三个点构成的三角形内的充要条件是点P在点集S的凸包内。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps =原创 2015-08-17 21:29:39 · 964 阅读 · 1 评论 -
uva 303 - Pipe(几何)
题目链接:uva 303 - Pipe枚举射线,然后逐一判断。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-6;inline int dcmp (double x) {原创 2015-08-17 21:35:40 · 789 阅读 · 0 评论 -
uva 313 - Intervals(几何)
题目链接:uva 313 - Intervals点和圆的切线,线和线的交点。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-6;inline int dcmp (doub原创 2015-08-17 21:37:32 · 600 阅读 · 0 评论 -
uva 1298 - Triathlon(二分+平面相交)
题目连接:uva 1298 - Triathlon#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps = 1e-8;inline int d原创 2015-08-21 22:59:37 · 703 阅读 · 0 评论 -
uva 1396 - Most Distant Point from the Sea(平面相交)
题目链接:uva 1396 - Most Distant Point from the Sea大白书上例题。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);con原创 2015-08-21 22:57:11 · 677 阅读 · 0 评论 -
uva 1453 - Squares(旋转卡壳)
题目链接:uva 1453 - Squares旋转卡壳裸题。#include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps = 1e-8;inline int原创 2015-08-21 22:53:53 · 628 阅读 · 0 评论 -
uva 11168 - Airport(凸包)
题目链接:uva 11168 - Airport求出凸包,凸包的每条边即为需要考虑的直线。因为点均在直线同一侧,所以Ax+By+C的正负值相同。预处理出x,y的总和,根据d = | Ax + By + C| / sqrt(A*A+B*B),在o(1)的复杂度内计算出所有点到直线的距离。#include #include #include #include #incl原创 2015-08-21 22:48:28 · 653 阅读 · 0 评论 -
uva 10652 - Board Wrapping(凸包)
题目链接:uva 10652 - Board Wrapping处理出所有顶点,求凸包的面积。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-8;inline int dc原创 2015-08-21 22:43:54 · 600 阅读 · 0 评论 -
uva 1475 - Jungle Outpost(二分+平面相交)
题目链接:uva 1475 - Jungle Outpost#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps = 1e-8;inline原创 2015-08-21 23:03:21 · 781 阅读 · 0 评论 -
uva 10256 - The Great Divide(凸包)
题目链接:uva 10256 - The Great Divide求出两个凸包,暴力判断有没有相交。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-8;inline in原创 2015-08-21 22:51:13 · 832 阅读 · 0 评论 -
uva 10321 - Polygon Intersection(几何)
题目链接:uva 10321 - Polygon Intersection就是两个多边形线段的交点,并且判断出所有在多边形内部的点。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps =原创 2015-08-19 23:34:26 · 1198 阅读 · 0 评论 -
uva 11978 - Fukushima Nuclear Blast(二分+几何)
题目链接:uva 11978 - Fukushima Nuclear Blast二分,圆和多边形面积交。将多边形拆成n份三角形(每两点与圆心构成),计算有向面积。每个三角形和圆的面积分四类讨论。#include #include #include #include #include using namespace std;const double pi = 4原创 2015-08-19 23:44:25 · 789 阅读 · 0 评论 -
uva 11177 - Fighting Against a Polygonal Monster(几何)
题目链接:uva 11177 - Fighting Against a Polygonal Monster圆和多边形面积的交。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-原创 2015-08-19 23:46:27 · 705 阅读 · 0 评论 -
uva 10867 - Cutting a Polygon(几何)
题目链接:uva 10867 - Cutting a Polygon确定分段,每个分段的中点判断是否在多边形内部。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-8;in原创 2015-08-19 23:31:39 · 540 阅读 · 0 评论 -
uva 1463 - Largest Empty Circle on a Segment(二分+三分+几何)
题目链接:uva 1463 - Largest Empty Circle on a Segment二分半径,对于每个半径,用三分求出线段到线段的最短距离,根据最短距离可以确定当前R下每条线段在[0,L]上的可行区间,存在一个点被可行区间覆盖n次。#include #include #include #include #include using namespac原创 2015-08-19 23:41:14 · 862 阅读 · 1 评论 -
uva 10915 - War on Weather(几何)
题目链接:uva 10915 - War on Weather点和球的切线大于点到预定点的距离,即为可达。#include #include #include #include using namespace std;const int maxn = 105;const double pi = 4 * atan(1.0);const double R =原创 2015-08-19 23:29:39 · 805 阅读 · 0 评论 -
uva 319 - Pendulum(几何)
题目链接:uva 319 - Pendulum注意高度不能高过水平线,一种周期是绕某点一直转圈,一种周期是返回起点。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-8;i原创 2015-08-19 23:27:33 · 807 阅读 · 0 评论 -
uva 1017 - Merrily, We Roll Along!(几何线性轮廓)
题目链接:uva 1017 - Merrily, We Roll Along!将所有点依次连接起来形成一条曲线,圆心移动的轨迹其实就是一条时刻与它距离为r的曲线。对于线段就是平移,对于点就是一个圆。要求的轨迹其实就是所有线段和圆的轮廓,所以从起始位置开始,每次暴力出下一要移动到的点,距离就是最终的和。对于从圆上的点A移动到线段或是圆上的点B,角AOB(O为圆心)要尽量小。对原创 2015-08-19 23:22:12 · 1116 阅读 · 0 评论 -
uva 800 - Crystal Clear(几何)
题目链接:uva 800 - Crystal Clear不知道士标程的问题还是精度的问题,在UVAlive上过掉了。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-9;i原创 2015-08-17 21:39:37 · 595 阅读 · 0 评论 -
uva 11437 - Triangle Fun(几何)
题目链接:uva 11437 - Triangle Fun#include #include #include #include #include using namespace std;const int maxn = 3;struct point { double x, y; void input() { scanf("%lf%lf", &x, &y);原创 2015-08-05 09:06:49 · 826 阅读 · 0 评论 -
uva 11646 - Athletics Track(几何)
题目链接:uva 11646 - Athletics Track#include #include #include #include using namespace std;const double pi = 4.0 * atan(1.0);int main () { int a, b, cas = 1; char c[10]; while (scanf("%d%s原创 2015-08-05 09:06:32 · 752 阅读 · 0 评论 -
uva 12300 - Smallest Regular Polygon(几何)
题目链接:uva 12300 - Smallest Regular Polygon保证AB为整多边形中的对角线#include #include #include #include using namespace std;const double pi = 4 * atan(1);double dis(double x, double y) { retur原创 2015-08-15 10:47:26 · 762 阅读 · 0 评论 -
uva 1447 - Malfatti Circles(几何+二分)
题目链接:uva 1447 - Malfatti Circles#include #include #include #include using namespace std;const double eps = 1e-9;const double pi = 4 * atan(1.0);struct Point { double x, y; void read()原创 2015-08-15 10:56:21 · 786 阅读 · 0 评论