UVALive 7749 Convex Contour (计算几何)】的更多相关文章

题意:给定上正方形,圆,三角形,让你求出包围它的最短的路径. 析:首先,如果是这种情况  三角形 三角形 三角形 正方形(圆) 三角形 三角形 三角形 ..这一种就是直接从左边直接连到正方形(圆),也就是相切,剩下的情况都是直接是直线,只要处理一下边界就好. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #incl…
题目描述 一些几何图形整齐地在一个网格图上从左往右排成一列.它们占据了连续的一段横行,每个位置恰好一个几何图形.每个图形是以下的三种之一:$1.$一个恰好充满单个格子的正方形.$2.$一个内切于单个格子的圆.$3.$一个底边与格子重合的等边三角形. 已知每个格子的边长都为$1$,请求出这些几何图形的凸包的周长. 输入格式 第一行包含一个正整数$n$,表示几何图形的个数.第二行包含$n$个字符,从左往右依次表示每个图形,$"S"$表示正方形,$"C"$表示圆形,$&q…
注意等边三角形的上顶点是卡不到边界上的. 于是整个凸包分成三部分:左边的连续的三角形.中间的.右边的连续的三角形. 套个计算几何板子求个三角形顶点到圆的切线.三角形顶点到正方形左上角距离啥的就行了,分类比较多. #include<cstdio> #include<cmath> using namespace std; const double PI=acos(-1.0); int n; char a[25]; struct Point{ double x,y; double len…
Convex Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 294    Accepted Submission(s): 220 Problem Description We have a special convex that all points have the same distance to origin point.As y…
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I 题意 在一个给定的三角形内部随机选择 $n$ 个点,问这些点构成的凸包的期望顶点数. $3\leq n\leq 10$ 题解 首先证明一个结论,对于任意三角形,随机撒 $n$ 个点的期望点数相同. 简单口胡:考虑任意拉扯三角形,三角形内部多边形的凸性都不会改变. 所以,我们只需要随便选择一个三角形…
题意:平面上有一些半径为R的圆,现在要在满足不与现有圆相交的条件下放入一个圆,求这个圆能放的位置的圆心到原点的最短距离. 解法:我们将半径扩大一倍,R = 2*R,那么在每个圆上或圆外的位置都可以放圆心了. 首先特判放到原点可不可以,如果不可以,再将所有圆的圆心与原点的直线与该圆相交的点放入队列,再将所有圆两两相交的点放入队列,然后处理整个队列,一一判断这些点行不行,可以证明,最优点一定在这些里面. 如果有一个圆的圆心在(0,0)点,那么要特判一下,因为此时圆心与原点连的直线长度为0,对于这种情…
题意:给个棋盘,你可以在棋盘的边缘处放2个蓝色棋子2个黄色棋子,问连接2组同色棋子的最小代价,如果线路交叉,输-1. 析:交叉么,可以把它们看成是两条线段,然后如果相交就是不行的,但是有几种特殊情况,比如都在同一行或同一列,要特殊考虑这种情况. 1122,1212,2211,2121,1221,2112.这是几种特殊的,然后其他的就可以用判交叉来算了,然后最短路就是横纵坐标相减的绝对值加2. 代码如下: #pragma comment(linker, "/STACK:1024000000,102…
思路: 如果所有的图形都是三角形,那么答案是2*n+1 否则轮廓肯定触到了最上面,要使轮廓线最短,那么轮廓肯定是中间一段平的 我们考虑先将轮廓线赋为2*n+2,然后删去左右两边多余的部分 如果最左边或最由边是正方形,那么不需要删 如果最左边或最由边是圆形,那么删取2 - pi/2 如果如果最左边或最由边是三角形,那么我们需要找到一段连续的三角形,然后考虑怎么删去 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimiz…
题面 题意:给你一堆点,求一个最大面积的空凸包,里面没有点. 题解:红书板子,照抄完事,因为题目给的都是整点,所以最后答案一定是.5或者.0结尾,不用对答案多做处理 #include<bits/stdc++.h> #define N 55 using namespace std; struct rec { double x,y; }; rec operator -(rec a,rec b) { rec c; c.x=a.x-b.x; c.y=a.y-b.y; return c; } doubl…
碰撞检测问题在虚拟现实.计算机辅助设计与制造.游戏及机器人等领域有着广泛的应用,甚至成为关键技术.而包围盒算法是进行碰撞干涉初步检测的重要方法之一.包围盒算法是一种求解离散点集最优包围空间的方法.基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象.为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检测和处理).包围体类型包括球体.轴对齐包围盒(AABB/Axis-aligned bounding box).有向…