给出两个点,找到过这两个点的等角螺线,并求出中间的螺线长

$c = \frac{b}{a}$

$p = a \times c^{\frac{\theta}{angle}}$

对弧线积分

#include <bits/stdc++.h>
using namespace std;
long double eps = 1e-8;
struct Point {long double x, y;Point(long double _x = 0, long double _y = 0) {x = _x; y = _y;} Point operator - (const Point &b) {return Point(x - b.x, y - b.y);}
}a[4];
long double Dot(Point &a, Point b) {return a.x * b.x + a.y * b.y;
}
long double len(Point &a) {return sqrt(Dot(a, a));
}
int cmp(long double x) {if (fabs(x) < eps) return 0; return eps > 0? 1: -1;
}
int main() {for (int i = 1; i <= 3; ++ i) cin >> a[i].x >> a[i].y;a[1] = a[1] - a[3];a[2] = a[2] - a[3];long double tmp = Dot(a[1], a[2]);long double len1 = len(a[1]), len2 = len(a[2]);if (cmp(tmp - len1 * len2) == 0) {long double ans = fabs(len1 - len2);cout << fixed << setprecision(12) << ans << '\n';return 0;}auto sqr = [&](long double x) -> long double {return x * x;};long double ang = acos(tmp / len1 / len2);long double ans = ang * len1;if (cmp(len1 - len2)) {long double C = len2 / len1;ans = (C - 1) / log(C) * ans; ans = ans * sqrt(1 + sqr(log(C) / ang));}cout << fixed << setprecision(12) << ans << '\n';
}

转载于:https://www.cnblogs.com/tempestT/p/10673163.html

XV Open Cup named after E.V. Pankratiev. GP of Siberia-Swimming相关推荐

  1. XVI Open Cup named after E.V. Pankratiev. GP of Siberia

    A. Passage 枚举两个点,看看删掉之后剩下的图是否是二分图. #include <bits/stdc++.h> using namespace std ;const int MAX ...

  2. XVI Open Cup named after E.V. Pankratiev. GP of Eurasia

    A. Nanoassembly 首先用叉积判断是否在指定向量右侧,然后解出法线与给定直线的交点,再关于交点对称即可. #include<bits/stdc++.h> using names ...

  3. XVI Open Cup named after E.V. Pankratiev. GP of SPB

    A. Bubbles 枚举两个点,求出垂直平分线与$x$轴的交点,答案=交点数+1. 时间复杂度$O(n^2\log n)$. #include<cstdio> #include<a ...

  4. XIV Open Cup named after E.V. Pankratiev. GP of Europe

    A. The Motorway 等价于找到最小和最大的$L$满足存在$S$使得$S+(i-1)L\leq a_i\leq S+i\times L$ 即 $S\leq\min((1-i)L+a_i)$ ...

  5. XVI Open Cup named after E.V. Pankratiev. GP of Ekaterinburg

    A. Avengers, The 留坑. B. Black Widow 将所有数的所有约数插入set,然后求mex. #include<bits/stdc++.h> using names ...

  6. XII Open Cup named after E.V. Pankratiev. GP of Eastern Europe (AMPPZ-2012)

    A. Automat $m$超过$1600$是没用的. 从后往前考虑,设$f[i][j][k]$表示考虑$[i,n]$这些物品,一共花费$j$元钱,买了$k$个物品的最大收益. 时间复杂度$O(n^5 ...

  7. XVIII Open Cup named after E.V. Pankratiev. GP of Urals

    A. Nutella's Life 斜率优化DP显然,CDQ分治后按$a$排序建线段树,每层维护凸包,查询时不断将队首弹出即可. 时间复杂度$O(n\log^2n)$. #include<cst ...

  8. XIII Open Cup named after E.V. Pankratiev. GP of Ukraine

    A. Automaton 后缀自动机可以得到$O(2n+1)$个状态,但是后缀自动机会拒绝接收所有不是$S$的子串的串,所以在建立后缀自动机的时候不复制节点即可得到$n+1$个状态的DFA. #inc ...

  9. XVII Open Cup named after E.V. Pankratiev. GP of Tatarstan

    A. Arithmetic Derivative 形如$p^p(p是质数)$的数的比值为$1$,用$k$个这种数相乘得到的数的比值为$k$,爆搜即可. #include<cstdio> # ...

最新文章

  1. ArcGIS API for JavaScript4.x 之加载2D、3D地图
  2. Python 入门 Day4
  3. python停止线程池_详解python中Threadpool线程池任务终止示例代码
  4. endl、flush、ends、unitbuf、nounitbuf区别及详解
  5. DotNet 学习笔记
  6. APP设计|搜索页面设计灵感
  7. QEMU学习笔记——QOM(Qemu Object Model)
  8. OI生涯回忆录(Part5:至初中竞赛生涯完)
  9. 中国石油大学《输气管道设计与管理(含课程设计)》第三阶段在线作业
  10. SV学习(8)——随机约束和分布、约束块控制
  11. 想破解游戏协议?你知道客户端和服务器是怎么通信的?我来告诉你怎么定义的
  12. 星瑞格数据库安全审计系统 —— Sinoregal dbAudit
  13. 你不知道的css——4. 基线、中线、x-height、单位ex(含文本与图标对齐技巧)
  14. 如何去远程控制公司电脑 这三样必备一样也不能少
  15. java中Scanner用法
  16. 带有基于Smalltalk的Ruby VM的NoSQL OODB:MagLev 1.0发布了
  17. 异或、异或和 的性质及应用总结
  18. 生产者和消费者模型(可以多对多,一对多、多对一、一对一)c++实现,没有使用pthread,时间片模拟并发
  19. srsLTE 源码分析 UE_08 随机接入 之开启前的准备
  20. mindspore载入已有的模型时不能完全载入

热门文章

  1. Distantly Supervised NER with Partial Annotation Learning and Reinforcement Learning阅读笔记
  2. Python核心编程-Amy老师第十讲课程作业
  3. C语言中和||的用法
  4. Nokia星球开发者大会
  5. Web 2.0网站流行使用的颜色元素
  6. Robust Pose Estimation in Crowded Scenes with Direct Pose-Level Inference 阅读笔记
  7. 均衡的轻薄性能旗舰 — Razer Blade15 长测
  8. 天边一朵云-书画双绝
  9. PullScrollView详解(三)——PullScrollView实现
  10. ubuntu 20.04 调节屏幕亮度