----计算几何----
算球?
在校学生
展开
-
poj 1039 Pipe
《算法艺术与信息学竞赛》p356例题,自己没做对,看了下题解,还是考虑的地方太少了。 题解:http://blog.csdn.net/lyy289065406/article/details/6648585 思路: #include <cmath> #include <cstring> #include <cstdio>struct Point { double x,y; }; con原创 2017-02-12 23:37:51 · 298 阅读 · 0 评论 -
hdu 6055 Regular polygon
枚举两个点,然后计算出正方形两外两个点,然后查找有没有这两个点。 在此之前真不知道怎么根据两点算另外两点,几何都白学了#include <bits/stdc++.h> #define ll long long using namespace std;struct Point { int x,y; } p[555]; set<pair<int,int>> sets;int solve(P原创 2017-07-30 19:22:40 · 252 阅读 · 0 评论 -
poj 1269 Intersecting Lines
题意:给个n,然后n行数据,每行四个点,代表两条直线,求两条直线平行,或者重合,或者相交,相交的话求出交点 叉积求交点公式:黑书p357 #include <cstdio> #include <cstring>struct Point { int x,y; };struct Line { Point s,e; }; Line line1,line2; int det(int原创 2017-03-24 17:36:07 · 254 阅读 · 0 评论 -
poj 3304 Segments
题意:在二维平面内给你n条线段,如果存在一条直线,使所有的线段投影在上边至少有一个交点,则输出“Yes!”,否则输出“No!” 思路:如果有存在这样的直线,过投影相交区域作直线的垂线,该垂线必定与每条线段相交,问题转化为问是否存在一条线和所有线段相交(我做题时没想到思路,思路是看的别人的) 不过知道思路后,就会发现这个题和poj 1039 Pipe有些相似,做法也基本一致,细节有些不同 /**原创 2017-03-24 16:00:50 · 325 阅读 · 0 评论 -
poj 2653 Pick-up sticks(判断线段相交)
题意:扔了n个棍子,如果某些棍子上边没有被别的棍子压住,则输出这些棍子,按照输入的顺序输出 思路:暴力枚举 做的时候忘了判断 共线但不相交的情况了,wa了好几发#include <iostream> #include <cmath> #include <cstdio> #include <algorithm> #include <queue> #include <cstring> using n原创 2017-03-31 17:10:26 · 342 阅读 · 0 评论 -
poj 1556 The Doors(最短路+几何)
题意:有一个小屋,起点在(0,5),重点在(10,5),中间有0—18堵墙,每堵墙上有两个门,求起点到终点最短路 思路:起点和终点和门的端点建图求最短路,在求两个端点之间的距离(直线距离)的时候要判断两个端点之间是否有墙隔着#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <原创 2017-03-31 15:53:32 · 578 阅读 · 0 评论 -
poj 2398 Toy Storage(叉积+二分)
和2318基本一样,只是输入的隔板不是按顺序的,输出的内容不一样#include <map> #include <cstdio> #include <cstring> #include <algorithm> using namespace std;const int MAXN = 5010; struct Point { int x,y; }; struct Line { Poin原创 2017-03-21 13:13:29 · 323 阅读 · 0 评论 -
poj 2318 TOYS(叉积+二分)
题意:一个很长的箱子,里面有n个隔板分成了n+1个小箱子,把m个玩具扔进这个n+1个小箱子,计算每个箱子有多少个玩具。(x1,y1) and (x2,y2)是左上角和右下角坐标。下边n行是每个隔板上下两个定点的x坐标,再下边m行是每个玩具的坐标。对隔板二分查找,叉积判断点在线的哪一侧。二分的时候边界的问题搞得我是很蛋疼,还看了下别人的二分 #include <cstdio> #include <cs原创 2017-03-21 13:11:36 · 411 阅读 · 0 评论 -
poj 1265 Area
题意:给你个多边形,求出多边形内部的点,边界上的点,多边形的面积。 Pick定理:如果一个简单多边形(以下称为“多边形”)的每个顶点都是直角坐标平面上的格点,则称该多边形为格点多边形.若一个面积为S的格点多边形,其边界上有a个格点,内部有b个格点,则S=a/2+b-1.边界上的点:假设给定边e,两端点为p1(x1,y1),(x2,y2);则边e上的格点数为GCD(x2-x1,y2-y1),注意:此原创 2017-02-14 19:07:07 · 288 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) B. Tell Your World(向量积)
向量积判断是否平行#include <bits/stdc++.h> using namespace std;const double eps = 1e-8; const int MAXN = 1010; struct Point { Point() {} Point(int _x, int _y):x(_x),y(_y) {} int x,y; }; Point ps[MAX原创 2017-09-02 01:06:09 · 317 阅读 · 0 评论