Kattis - amsterdamdistance【数学】

题意

给出两个点 算出从第一个点到第二个点的最短距离,只不过这里不是直角坐标系, 是雷达图

思路

因为内圈的圆的路径要比外圈的小,所以我们要尽可能先往内圈走,加一个判断条件 走到哪里就好了

AC代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <cstdlib>
#include <ctype.h>
#include <numeric>
#include <sstream>
using namespace std; typedef long long LL;
const double PI = 3.14159265358979323846264338327;
const double E = 2.718281828459;
const double eps = 1e-6;
const int MAXN = 0x3f3f3f3f;
const int MINN = 0xc0c0c0c0;
const int maxn = 1e5 + 5;
const int MOD = 1e9 + 7; int main()
{
int n, m;
double r;
scanf("%d%d%lf", &n, &m, &r);
double ave = r * 1.0 / m;
int x1, y1, x2, y2;
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
double ans = 0.0;
ans += (max(y1, y2) - min(y1, y2)) * ave * 1.0;
int y = min(y1, y2);
double rec = (max(x1, x2) - min(x1, x2)) * 1.0 / n; // 份数
while (y)
{
double dis1, dis2;
dis1 = 2.0 * ave + 1.0 * rec * (PI * (y - 1) * ave);
dis2 = rec * PI * y * ave * 1.0;
if (dis1 <= dis2)
{
ans += 2 * ave;
y--;
}
else
{
ans += dis2;
break;
}
}
if (fabs(ans - 0.0) < eps)
cout << 0 << endl;
else
printf("%.14lf\n", ans);
}

最新文章

  1. Android之ContentProvider数据存储
  2. Tomcat 随机挂掉
  3. 本篇文章: HTML DOM 对象
  4. hdu 4578 Transformation 线段树
  5. 《Unix环境高级编程》环境搭建
  6. Query语句对系统性能的影响
  7. Web静态和动态项目委托代理基于面向方面编程AOP
  8. react+webpack开发环境配置
  9. CSS学习笔记10 相对定位,绝对定位与固定定位
  10. hashlib模块-加密的模块,加盐
  11. sudo: unable to execute ./script.sh: no such file or directory
  12. flask多个app应用组合
  13. Instruments leak黑魔法定位内存泄漏
  14. C# 简述Action与function
  15. MyEclipse中设置jsp页面为默认utf-8编码
  16. BZOJ 2648 SJY摆棋子(KD树)
  17. [开发工具]_[VS2010]_[vs2010的一个bug-使用stringstream时出现]
  18. BZOJ Lydsy5月月赛 ADG题解
  19. PHP扩展--Oracle客户端(oci8)安装
  20. 【转】Linux 下取进程占用 cpu/内存 最高的前10个进程

热门文章

  1. java程序调用kettle
  2. SpringBoot启动过程原理
  3. Vector类与Enumeration接口
  4. ubuntu 自动清理/tmp目录
  5. java Thread方法解析: sleep join wait notify notifyAll
  6. jQuery实现的浮动层div浏览器居中显示效果
  7. apache 一个站点配置多个域名
  8. win7下安装memcached
  9. ActiveMQ+SpringMVC+Maven应用示例
  10. JavaScript实践-简单的贪吃蛇小游戏