HDU 5295 Unstable 计算几何】的更多相关文章

Unstable 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5295 Description Rasen had lost in labyrinth for 20 years. In a normal day, he found a bright screen. There were 4 points labeled by 'A' , 'B' , 'C' , 'D', and rasen could drag these point. And…
HDU 4998 Rotate (计算几何) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4998 Description Noting is more interesting than rotation! Your little sister likes to rotate things. To put it easier to analyze, your sister makes n rotations. In the i-th time, s…
/* hdu 4643 GSM 计算几何 - 点线关系 N个城市,任意两个城市之间都有沿他们之间直线的铁路 M个基站 问从城市A到城市B需要切换几次基站 当从基站a切换到基站b时,切换的地点就是ab的中垂线与铁路的交点(记录由哪两个基站得到的交点,方便切换)处 枚举任意两个基站与铁路的交点,按到城市A的距离排序 求出在城市A时用的基站j,然后开始遍历交点,看从j可以切换到哪个基站(假设是k),然后再看可以从k可以切换到哪个基站 */ #include<stdio.h> #include<…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1174 解题报告:就是用到了三维向量的点积来求点到直线的距离,向量(x1,y1,z1)与(x2,y2,z2)的点积是:x1*x2+y1*y2+z1*z2. 然后要注意的就是当两个向量的夹角大于等于90度时,无论如何都不能射中. #include<cstdio> #include<cstring> #include<iostream> #include<algorithm…
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086 You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7167    Accepted Submission(s): 3480 Problem Description Ma…
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4613 题意: 判断一个集合中的点能不能由另一个集合中的点,通过平移,旋转,放缩得到~ 思路:先求出集合中的点的凸包,然后枚举每一条边作为起点 ,看原集合中的点能否与要比较的集合中的点一一对应~ #include <iostream> #include <cstdio> #include <algorithm> #include <functional> #inclu…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题意:有一个圆心在原点的圆,给定圆的半径,给定P.Q两点坐标(PO=QO,P.Q不在圆外),取圆上一点D,求PD+QD的最小值. 解法:圆的反演. 很不幸不总是中垂线上的点取到最小值,考虑点在圆上的极端情况. 做P点关于圆的反演点P',OPD与ODP'相似,相似比是|OP| : r. Q点同理. 极小化PD+QD可以转化为极小化P'D+Q'D. 当P'Q'与圆有交点时,答案为两点距离,否则最优…
题意:容易理解 分析:切换的地点为两个基站所在直线的中垂线与两座城市所在直线的交点. 代码实现: #include <cstdio> #include <cmath> #include <algorithm> #define maxn 60 #define eps 1e-7 using namespace std; int dcmp(double x) //控制精度 { ; ?-:; } double toRad(double deg) //角度转弧度 { return…
思路:将所有的直线的两个端点和城市混在一起,将能直接到达的两个点连线,求一次floyd最短路径.二分枚举bag容量,然后按给的要先后占领的城市由前向后,把能到一步到达的建一条边.然后求一次最小路径覆盖,就是最少需要多少个士兵才能全部占领,跟给出的p值进行比较. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #def…
不说了...说多了都是泪...从昨天下午一直wa到现在,直到刚刚才让人帮我找到所谓的“bug”,其实也算不上bug... 这个题的思路就是:找出平面上的所有点:所有圆的交点以及所有圆的圆心.然后依次判断两点是否连通,连通的话两点距离便是其欧几里得距离.这样建完图之后直接跑s->t最短路就行了.. 两点连通?也就是说这两点连成的线段,一直在圆内,任意圆都行.如何判断呢,求出该线段与所有圆的所有交点,排序后将其分段,依次判断每一段是否在任意圆内.这个么,在分段后,判断每一段的中点是否在圆内就行了.…