Blizzard(暴力技巧+精度问题)

Blizzard

Description

在魔兽争霸之冰封王座中有一个叫冰川的地图,里面有魔法传送阵,可以传送到这个此传送阵的对称传送阵位置。假设地图是圆形的,地图中心也就是圆心,在圆上每个点都有一个传送阵,可以传送到与地图圆心中心对称的位置。现在因为贪婪的大魔法师,人族正经历一场浩劫,作为聪明的兽族先知,信奉趁你病要你命的原则,想要趁机占领人族的土地。你能计算最短距离能够使兽族大军尽快到达人族营地?

Input

第一行一个整数r(1 <= r <= 1000)代表地图的半径。接下来两行两个整数分别代表兽族出发点的位置和人族营地的位置坐标。保证两个位置都在圆内(可能在边界上),地图中心在点(0, 0)上。

Output

输出一个实数,代表兽族大军最短需要移动多少距离。和答案相对或绝对相差1e-6都算正确。

Sample Input 1

1
0 1
0 -1

Sample Output 1

0.000000000000

Sample Input 2

4
3 0
-3 0

Sample Output 2

2.000000000000

Hint:

第二个样例抽象图
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<algorithm>
 6 #define Min(a,b) a<b?a:b
 7 #define eps 1e-4
 8 #define pi 3.1415926
 9 using namespace std;
10
11 double ans;
12 double dis(double x0,double y0,double x1,double y1)
13 {
14     return sqrt(pow((x1-x0),2)+pow((y1-y0),2));
15 }
16 int main()
17 {
18     double r,x1,x2,y1,y2;
19     scanf("%lf%lf%lf%lf%lf",&r,&x1,&y1,&x2,&y2);
20  /*   if(abs(y1-y2)/abs(x1-x2)==1)
21     {
22         ans=2*r-(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
23     }
24     else
25     {*/    //不能写if 因为存在两点重合的情况
26         ans=dis(x1,y1,x2,y2);
27         for(double i=0;i<=360;i+=eps)
28         {
29             ans=Min(ans,(dis(x1,y1,r*cos(i/180*pi),r*sin(i/180*pi))+dis(x2,y2,-r*cos(i/180*pi),-r*sin(i/180*pi))));
30         }//圆上坐标表示为(R*cos,R*sin);
31     //}
32     printf("%.8lf\n",ans);
33 return 0;
34 }


原文地址:https://www.cnblogs.com/1013star/p/9558003.html

时间: 2024-10-02 22:31:48

Blizzard(暴力技巧+精度问题)的相关文章

关于三分的暴力技巧(暴力好)

关于三分的暴力技巧 以下为暴力专场(前方高能) 现在以hdu4454为例 1.这道题的一个总结点是暴力对于精度不超过1e-2的东西,我们可以直接暴力求解 2.几何:对于一个圆(整个几何)都需要掌握三角函数的运用,这里有一篇非常不错的文章可以学习 3.圆到矩形的最短距离 关于圆到矩形的最短距离,主要是关于是到 矩形上垂直一点到圆最小(这时x和y都被"包围"): 矩形的四个顶点 具体看代码实现 现在附上超级牛逼的暴力代码(感谢qt神犇) #include<cmath> #inc

HDU 4509 湫湫系列故事——减肥记II(线段树-区间覆盖 或者 暴力技巧)

http://acm.hdu.edu.cn/showproblem.php?pid=4509 题目大意: 中文意义,应该能懂. 解题思路: 因为题目给的时间是一天24小时,而且还有分钟.为了解题方便,我们将小时换成分钟,那么一天24小时,总共有1440分钟.顾我就可以把一天里的任意HH:MM时间换成分钟.就这样一天的时间就变成[0,1440]区间了. 因为所给的活动最多是5*10^5,如果把活动的时间在线段[0,1440]都修改,那么时间的复杂度最坏是O(5*10^5*1440). (1)方法一

Codeforces Round #312 (Div. 2)——C暴力技巧——Amr and Chemistry

Amr loves Chemistry, and specially doing experiments. He is preparing for a new interesting experiment. Amr has n different types of chemicals. Each chemical i has an initial volume of ai liters. For this experiment, Amr has to mix all the chemicals

FZU2077——暴力技巧——The tallest tree

lzs种了n棵树,每棵树每天长高一定的高度.某一天,lzs想知道树长得怎么样了,你能求出那一天最高的树有多高吗? Input 有多组测试数据,每组数据第一行输入两个整数n,m(1<=n,m<=100000),接下来n行,每行两个整数a,b(0<=a,b<=100000),表示第i棵树在第0天的高度以及每天生长的高度.接下来m行,每行一个整数x(0<=x<=100000),表示询问第x天最高的树有多高. Output 对于每个询问输出一行,为当天最高的树的高度. Samp

XDOJ_1079_暴力技巧

http://acm.xidian.edu.cn/problem.php?id=1079 枚举每一个区间不行,就枚举每一对存在的数,然后用最大子串的思路,中间加上判断枚举的数是否存在. #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int a[100005],n,m,has[15]; int main() { int

GDOI2016游记

前言 今年的G(gao)D(dan)OI在四会中学(偏远地区) (这也算前言 由于赛艇不知道总结怎么写了,我就去抄我GDKOI总结的形式了. DAY 0 宾馆前台的那个地方让我觉得高能,然而初三并不住那-- 辣鸡WIFI啊! 看视频只能买流量快餐了(听说有5.1假期的10元1G 吃饭都是去四会中学,首先抱怨一下感觉车程有点长--饭菜还好,半自助的形式. 本来说要用samjia电脑玩鬼畜天线宝宝(雾 然而下错了一次我之前发现的链接又蜜汁被取消后,为了不浪费流量,就不下了-- DAY 1 过程: 辣

算法复习计划

写在前面 随着四月的到来, 离省选越来越近了. 从NOIP到现在, 学到了很多很多东西, 有的学的比较深入, 有的只是略知一二 从明天开始, 进行针对省选的算法复习计划. 省选前完成. 重点是对算法的理解和应用, 还会注重模板习惯的养成 计划内容 1. 数据结构 一直觉得我数据结构学的还可以, 不过列出来发现会的也没多少. 少就少吧, 省选够用就行... 线段树 树状数组 并查集 哈希表 STL treap splay 树链剖分 主席树(可忽略) 字符串(KMP, 后缀数组) 2. 图论 掌握经

野生前端的数据结构练习(12)贪心算法

参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/GreedyAlogrithm 一.贪心算法 贪心算法属于比较简单的算法,它总是会选择当下最优解,而不去考虑单次递归时是否会对未来造成影响,也就是说不考虑得到的解是否是全局最优.在很多实际问题中,寻找全局最优解的代价是非常大的,这时候就可以通过求次优解来解决问题,这种思想其实在软件工程中很常见,例如React中著名的DOM Diff算法中需要对比两棵DOM树,树的完

PKUWC2019游记

深夜更游记? DAY -N 在ZJ某巨佬聚集的学校集训了两个月?被锤成弟弟 天天自闭 被比我小还比我强的人吊锤TAT 感觉一直是比较垫底吧 但还好状态还挺好的 走之前飞机莫名被取消??当攒rp好了= = DAY -1 由于换了飞机于是早出发了 一想到马上要回家了就很开心qwq 要跟FluffyBunny学姐一起住表示开心~ 从暑假以后就没见面了qwq 虽然后来都被家长接出去了 到了纪中是4点多了 于是老师让我们先跑上去试机家长们帮我们领材料 试机题T1模拟就行了然后我把|写成了^WA了一发 不大