随笔分类 -  算法竞赛-计算几何

摘要:题意:给出n个点的坐标(均为整数),求能够组成的正多边形的个数 题目思路:都是整数点,那么组成的正多边形只能为正方形,每次枚举两个点,判断是否存在另外的两个点能够组成正方形。 #include<iostream> #include<cstdio> #include<cstdlib> #include 阅读全文
posted @ 2017-07-27 22:06 声声醉如兰 阅读(233) 评论(0) 推荐(1)
摘要:题目大意:按逆时针方向连接个点,并将其输出,第一个点为(0,0)。 题目思路:叉积排下序就好了 #include<cstdio> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #include<cst 阅读全文
posted @ 2016-11-04 15:44 声声醉如兰 阅读(150) 评论(0) 推荐(0)
摘要:题目大意:建立围墙将城堡围起来,要求围墙至少距离城堡L,拐角处用圆弧取代,求围墙的长度。 题目思路:围墙长度=凸包周长+(2*PI*L),另外不知道为什么C++poj会RE,G++就没问题。 #include<cstdio> #include<cstdlib> #include<cmath> #in 阅读全文
posted @ 2016-11-04 15:40 声声醉如兰 阅读(310) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/y990041769/article/details/38258761 首先在二维坐标下介绍一些定义: 点:A(x1,y1),B(x2,y2) 向量:向量AB=( x2 - x1 , y2 - y1 )= ( x , y ); 向量的模 |AB| = 阅读全文
posted @ 2016-11-04 14:15 声声醉如兰 阅读(316) 评论(0) 推荐(1)
摘要:题目大意:给你几个正方形的边长,正方一个顶点在x轴上然后边与x轴的夹角为45度,每个正方形都是紧贴的,问从上面看能看的正方形的编号 题目思路:线段覆盖,边长乘上2防止产生小数,求出每个正方形与x轴平行的对角线的起始x坐标,剩下的就是线段了。 #include<cstdio> #include<cst 阅读全文
posted @ 2016-11-02 19:00 声声醉如兰 阅读(155) 评论(0) 推荐(0)
摘要:题目大意:连接个点,求围成的面积并除以50(向下取整) 题目思路:就是求凸包面积:按逆时针方向为凸包上每条边指定方向,对于每条边AB,累加(AXB)/2的值。 #include<cstdio> #include<cstdlib> #include<cmath> #include<iostream> 阅读全文
posted @ 2016-11-02 09:44 声声醉如兰 阅读(134) 评论(0) 推荐(0)
摘要:题目大意:给出n个点的编号和坐标,按逆时针方向连接着n个点,按连接的先后顺序输出每个点的编号。 题目思路:Cross(a,b)表示a,b的叉积,若小于0:a在b的逆时针方向,若大于0a在b的顺时针方向。每次都sort一下,找出在当前点逆时针方向的最远的点。数据很小O(N*N*log(N))的复杂度0 阅读全文
posted @ 2016-11-01 16:45 声声醉如兰 阅读(178) 评论(0) 推荐(0)
摘要:题目大意:给出一个线段的两端,和矩形两端(不一定是左上和右下),问线段是否与矩形相交(若线段在矩形内也算相交)。这题蒸鹅心…… 题目思路:判断所有情况:线段是否在矩形内,线段内一点是否在矩形内,线段是否与四边相交(叉积),线段的两端是否在矩形上,矩形的四点是否在线段上。 要注意的是: 1.如果两条线 阅读全文
posted @ 2016-11-01 10:35 声声醉如兰 阅读(259) 评论(0) 推荐(0)
摘要:题目大意:求到到目标点至少需要穿过几道墙。 题目思路:暴力循环,计算各个点(不要忘记四角)与目标点的连线穿过多少条线段,取最小值。 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<io 阅读全文
posted @ 2016-10-31 15:33 声声醉如兰 阅读(213) 评论(0) 推荐(0)
摘要:题目大意:一次丢下去n根木棒,问那些木棒不被其他木棒压着,依次输出。 题目思路:叉积判断线段是否相交,吐槽下POJ数据真弱竟然没超时…… #include<cstdio> #include<cstdlib> #include<cmath> #include<iostream> #include<al 阅读全文
posted @ 2016-10-31 14:18 声声醉如兰 阅读(213) 评论(0) 推荐(0)
摘要:题目大意:求从(0,5)到(10,5)的最短距离,起点与终点之间有n堵墙,每个墙有2个门。 题目思路:判断两点间是否有墙(判断两点的连线是否与某一堵墙的线段相交),建立一个图,然后最短路求出就可以了。 #include<cstdio> #include<cstdlib> #include<cmath 阅读全文
posted @ 2016-10-31 11:13 声声醉如兰 阅读(673) 评论(0) 推荐(0)
摘要:题目大意:给出两条直线,每个直线上的两点,求这两条直线的位置关系:共线,平行,或相交,相交输出交点。 题目思路:主要在于求交点 F0(X)=a0x+b0y+c0==0; F1(X)=a1x+b1y+c1==0; 设点(x0,y0)(x1,y1)过直线 解方程:a=y1-y0,b=x0-x1,c=x1 阅读全文
posted @ 2016-10-20 12:03 声声醉如兰 阅读(118) 评论(0) 推荐(0)
摘要:题目大意:给出n条线段,问是否存在一条直线,使得n条线段在直线上的投影有至少一个公共点。 题目思路:如果假设成立,那么作该直线的垂线l,该垂线l与所有线段相交,且交点可为线段中的某两个交点 证明:若有l和所有线段相交,则可保持l和所有线段相交,左右平移l到和某一线段交于端点停止(“移不动了”)。然后 阅读全文
posted @ 2016-10-19 19:55 声声醉如兰 阅读(191) 评论(0) 推荐(0)
摘要:题目大意:和 TOY题意一样,但是需要对隔板从左到右进行排序,要求输出的是升序排列的含有i个玩具的方格数,以及i值。 题目思路:判断叉积,二分遍历 #include<iostream> #include<algorithm> #include<cstring> #include<vector> #i 阅读全文
posted @ 2016-10-19 15:06 声声醉如兰 阅读(158) 评论(0) 推荐(0)
摘要:题目大意:给出一个长方形盒子的左上点,右下点坐标。给出n个隔板的坐标,和m个玩具的坐标,求每个区间内有多少个玩具。 题目思路:利用叉积判断玩具在隔板的左方或右方,并用二分优化查找过程。 #include<iostream> #include<algorithm> #include<cstring> 阅读全文
posted @ 2016-10-18 14:05 声声醉如兰 阅读(141) 评论(0) 推荐(0)