- 博客(141)
- 收藏
- 关注
原创 【索引】Geometric Computations and Algorithms in 3D::Examples
AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)Chapter 4. Geometry::Geometric Computations and Algorithms in 3D::Examples11275 - 3D Triangles1469 - Ardenia143
2015-08-31 23:51:09 671
原创 hihoCoder 1225 向日葵(凸包)
题目链接:hihoCoder 1225 向日葵枚举每条线段称为凸包边界的概率。注意一对点中有1个在线段左边*0.5,0个在线段左边*0,2个都在线段左边*1。最后答案要除4,因为枚举的两个点也要算概率。#include #include #include #include #include #include using namespace std;typed
2015-08-31 23:44:29 919
原创 zoj 3871 Convex Hull(凸包)
题目链接:zoj 3871 Convex Hull枚举每条边,计算出有多少情况下为凸包的边界,即有多少点在该边的左边。#include #include #include #include #include #include using namespace std;typedef pair pii;typedef long long ll;const d
2015-08-31 23:41:02 1556
原创 hdu 5425 Rikka with Tree II(暴力)
题目链接:hdu 5425 Rikka with Tree II直接枚举就好了,当概率极小时贡献值可以忽略。#include #include #include #include #include #include using namespace std;const int maxn = 1e5 + 5;int N, D[maxn];vector G
2015-08-31 23:35:11 951
原创 hdu 5424 Rikka with Graph II(欧拉通路)
题目链接:hdu 5424 Rikka with Graph II删掉至多一条,判断剩下的边是否可以形成欧拉通路,并且要保证联通。#include #include #include #include using namespace std;const int maxn = 1005;typedef pair pii;int N, C[maxn], F[m
2015-08-31 23:31:16 721
原创 hdu 5423 Rikka with Tree(水)
题目链接:hdu 5423 Rikka with Tree#include #include #include #include using namespace std;const int maxn = 1005;int N, D[maxn], V[maxn];vector G[maxn];void dfs (int u, int d) { D[d]++;
2015-08-31 23:29:25 496
原创 hdu 5419 Victor and Toys(暴力+组合)
题目链接:hdu 5419 Victor and Toys枚举每个位置被多少段区间包含。#include #include #include using namespace std;typedef long long ll;const int maxn = 50005;int N, M, A[maxn], C[maxn];void init () {
2015-08-31 23:27:14 524
原创 hdu 5418 Victor and World(dp)
题目链接:hdu 5418 Victor and World#include #include #include #include #include using namespace std;const int maxn = 16 + 5;const int maxm = (1<<16) + 5;const int inf = 0x3f3f3f3f;typedef
2015-08-31 23:24:45 442
原创 uva 535 - Globetrotter(几何弧面长)
题目链接:uva 535 - Globetrotter#include #include #include #include #include #include using namespace std;//Lab = R * arccos(cos(wa)*cos(wb)*cos(ja-jb) + sin(wa)*sin(wb))const int maxn
2015-08-31 23:12:09 671
原创 uva 11836 - Star War(几何)
题目链接:uva 11836 - Star War就三种情况,点到线段,点到面,线段到线段。#include #include #include #include #include #include using namespace std;const double eps = 1e-6;inline int dcmp (double x) { if (f
2015-08-31 23:10:38 527
原创 uva 10794 - The Deadly Olympic Returns!!!(几何)
题目链接:uva 10794 - The Deadly Olympic Returns!!!点到线段的距离,终点定无穷远。#include #include #include #include #include #include using namespace std;const double eps = 1e-8;inline int dcmp (do
2015-08-31 23:08:45 635
原创 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 924
原创 uva 1373 - How I Wonder What You Are!(几何)
题目链接:uva 1373 - How I Wonder What You Are!#include #include #include #include #include #include using namespace std;const double eps = 1e-6;inline int dcmp (double x) { if (fabs(x) < e
2015-08-31 23:05:34 875
原创 uva 1100 - Paperweight(几何重心)
题目链接:uva 1100 - Paperweight#include #include #include #include #include #include using namespace std;const double eps = 1e-8;inline int dcmp (double x) { if (fabs(x) < eps) return 0; e
2015-08-31 23:03:57 655
原创 uva 1438 - Asteroids(几何重心+凸包)
题目链接:uva 1438 - Asteroids#include #include #include #include #include #include using namespace std;const double eps = 1e-9;inline int dcmp (double x) { if (fabs(x) < eps) return 0; els
2015-08-31 22:59:13 640
原创 uva 1469 - Ardenia(几何+分数)
题目链接:uva 1469 - Ardenia#include #include #include #include using namespace std;typedef long long ll;struct Point3 { int x, y, z; Point3 (int x = 0, int y = 0, int z = 0): x(x), y(y),
2015-08-31 22:57:32 963
原创 uva 11275 - 3D Triangles(几何)
题目链接:uva 11275 - 3D Triangles#include #include #include #include #include using namespace std;const double eps = 1e-9;inline int dcmp (double x) { if (fabs(x) < eps) return 0; else retu
2015-08-31 22:52:03 672
原创 uva 11595 - Crossing Streets EXTREME(切割多边形)
题目链接:uva 11595 - Crossing Streets EXTREME对初始平面进行切割,得到所有平面,然后处理出所有边,有公共边的两个平面之间可以到达,对于城市的权值可以加到点上,进出各加一次即可。#include #include #include #include #include #include #include using names
2015-08-31 22:46:29 1201
原创 uva 11726 - Crime Scene(圆+凸包)
题目链接:uva 11726 - Crime Scene求出所有点和圆的切点,然后所有的点和原有的点一起做一次凸包,求出凸包的边长,如果连续的两个点都是圆同一个圆上的切点,计算长度的方式就要变成求弧长。#include #include #include #include #include #include using namespace std;typed
2015-08-31 22:42:26 1105 4
原创 【索引】Geometric Algorithms in 2D::Exercises: Beginner
AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)Chapter 4. Geometry::Geometric Algorithms in 2D::Exercises: Beginner1303 - Wall1304 - Art Gallery10084 - Hotter
2015-08-27 13:38:44 686
原创 uva 811 - The Fortified Forest(暴力+凸包)
题目链接:uva 811 - The Fortified Forest最多就15棵树,枚举哪些树要砍,剩下的做凸包。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);
2015-08-27 13:29:13 585
原创 uva 754 - Treasure Hunt(几何)
题目链接:uva 754 - Treasure Hunt直接判断移动到边界最少会交几条线段。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const doubl
2015-08-27 13:27:22 1139
原创 uva 588 - Video Surveillance(半平面相交)
题目链接:uva 588 - Video Surveillance求出多边形的核,如果非0即为可行,注意核退化成直线和点都是可以的,所以不能用面积去判断。#include #include #include #include #include #include using namespace std;typedef pair pii;const doubl
2015-08-27 13:25:57 906
原创 uva 11265 - The Sultan's Problem(多边形切割)
题目链接:uva 11265 - The Sultan's Problem对于每条切线,取点在那侧。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const d
2015-08-27 13:23:44 517
原创 uva 11072 - Points(凸包)
题目链接:uva 11072 - Points求出凸包,判断点是否在凸包内即可。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps
2015-08-27 13:22:17 839
原创 uva 12307 - Smallest Enclosing Rectangle(旋转卡壳)
题目链接:uva 12307 - Smallest Enclosing Rectangle两组踵对点围成长方形,枚举出所有可行长方形维护最小值。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi
2015-08-27 13:20:19 891
原创 uva 10084 - Hotter Colder(多边形切割)
题目链接:uva 10084 - Hotter Colder每次新的点与当前位置的垂直平分线即为切割线。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const
2015-08-27 13:17:53 872
原创 uva 1304 - Art Gallery(半平面相交)
题目链接:uva 1304 - Art Gallery求出多边形的核面积。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps = 1
2015-08-27 13:15:35 535
原创 uva 1303 - Wall(凸包)
题目链接:uva 1303 - Wall求出凸包加个圆周。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps = 1e-8;in
2015-08-27 13:13:59 655
原创 【索引】Geometric Algorithms in 2D::Examples
AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)Chapter 4. Geometry::Geometric Algorithms in 2D::Examples10652 - Board Wrapping11168 - Airport10256 - The Great
2015-08-27 12:15:58 662
原创 【索引】Geometric Computations and Algorithms in 3D
AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)Chapter 4. Geometry::Geometric Computations and Algorithms in 3DExamplesExamples:BeginnerExamples:IntermediateE
2015-08-27 12:05:45 608
原创 【索引】Geometric Algorithms in 2D
AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu)Chapter 4. Geometry::Geometric Algorithms in 2DExamplesExamples:BeginnerExamples:IntermediateExamples:Advanced
2015-08-27 12:04:01 614
原创 uva 12296 - Pieces and Discs(多边形切割)
题目链接:uva 12296 - Pieces and Discs对于起始平面集合,每次添加一条切线,就对集合中所有平面进行向左向右的切割,生成新的平面。最后对于每个圆,判断一下相交面积是否为0,注意精度。#include #include #include #include #include #include using namespace std;typ
2015-08-27 12:01:05 834
原创 uva 1340 - Find the Border(卷包裹)
题目链接:uva 1340 - Find the Border模仿别人代码写的卷包裹算法。就是沿着折线的外围走一圈,每次到一个新的点需要转弯时转向向右拐最多的那条。#include #include #include #include #include #include using namespace std;typedef pair pii;const
2015-08-27 11:58:03 913
原创 uva 1318 - Monster Trap(bfs+暴力)
题目链接:uva 1318 - Monster Trap每条线段2个点,加上起点终点一个是202个点,暴力判断连点之间是否可达,可达建边。因为线段有厚度考虑,所以将线段延伸一点再处理,这样原本共用一端点的线段变成相交。特殊情况是三点共线,这是判断延伸后的点是否落在其他线段上,如果是就不考虑这个点。最后做一遍bfs。#include #include #include
2015-08-21 23:07:48 976
原创 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 749
原创 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 669
原创 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 657
原创 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 603
原创 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 805
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人