XV Open Cup named after E.V. Pankratiev. GP of Siberia-Swimming
给出两个点,找到过这两个点的等角螺线,并求出中间的螺线长
$c = \frac{b}{a}$
$p = a \times c^{\frac{\theta}{angle}}$
对弧线积分
#include <bits/stdc++.h>
using namespace std;
long double eps = 1e-;
struct Point {
long double x, y;
Point(long double _x = , long double _y = ) {
x = _x; y = _y;
}
Point operator - (const Point &b) {
return Point(x - b.x, y - b.y);
}
}a[];
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 ; return eps > ? : -;
}
int main() {
for (int i = ; i <= ; ++ i) cin >> a[i].x >> a[i].y;
a[] = a[] - a[];
a[] = a[] - a[];
long double tmp = Dot(a[], a[]);
long double len1 = len(a[]), len2 = len(a[]);
if (cmp(tmp - len1 * len2) == ) {
long double ans = fabs(len1 - len2);
cout << fixed << setprecision() << ans << '\n';
return ;
}
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 - ) / log(C) * ans;
ans = ans * sqrt( + sqr(log(C) / ang));
}
cout << fixed << setprecision() << ans << '\n';
}
XV Open Cup named after E.V. Pankratiev. GP of Siberia-Swimming的更多相关文章
- XV Open Cup named after E.V. Pankratiev. GP of Tatarstan
A. Survival Route 留坑. B. Dispersed parentheses $f[i][j][k]$表示长度为$i$,未匹配的左括号数为$j$,最多的未匹配左括号数为$k$的方案数. ...
- XV Open Cup named after E.V. Pankratiev. GP of America
A. Area of Effect 首先最优解中必有一个点在圆的边界上. 若半径就是$R$,则枚举一个点,然后把剩下的事件极角扫描即可,时间复杂度$O(m(n+m)\log(n+m))$. 否则圆必然 ...
- XV Open Cup named after E.V. Pankratiev. GP of Three Capitals
A. Add and Reverse 要么全部都选择$+1$,要么加出高$16$位后翻转位序然后再补充低$16$位. #include<stdio.h> #include<iostr ...
- XV Open Cup named after E.V. Pankratiev. GP of Central Europe (AMPPZ-2014)--J.Cave
给你一棵树,现在有m个专家,每个专家计划从$a_i$走到$b_i$, 经过的距离不超过$d_i$,现在让你找一个点,使得所有专家的路途都能经过这个点 令$S_i$表示满足第i个专家的所有点,先检查1可 ...
- XV Open Cup named after E.V. Pankratiev. GP of Central Europe (AMPPZ-2014)--B.Petrol
多源最短路+并查集 #include <bits/stdc++.h> using namespace std; #define rep(i, j, k) for (int i = int( ...
- XVI Open Cup named after E.V. Pankratiev. GP of Siberia
A. Passage 枚举两个点,看看删掉之后剩下的图是否是二分图. #include <bits/stdc++.h> using namespace std ; const int MA ...
- XVII Open Cup named after E.V. Pankratiev. GP of Siberia, Division 1
1. Ski race 枚举枚举倍数判断即可.时间复杂度$O(n\log m)$. #include<cstdio> #include<algorithm> using nam ...
- XV Open Cup named after E.V. Pankratiev Stage 6, Grand Prix of Japan Problem J. Hyperrectangle
题目大意: 给出一个$d$维矩形,第i维的范围是$[0, l_i]$. 求满足$x_1 + x_2 + ...x_d \leq s$ 的点构成的单纯形体积. $d, l_i \leq 300$ 题解: ...
- XVI Open Cup named after E.V. Pankratiev. GP of Eurasia
A. Nanoassembly 首先用叉积判断是否在指定向量右侧,然后解出法线与给定直线的交点,再关于交点对称即可. #include<bits/stdc++.h> using names ...
随机推荐
- js闭包讲解
今日看到之前写的一段js代码,关于导航部分鼠标放上去变类,鼠标离开等效果 前端代码 <div class="con12"> <div class="le ...
- SQL学习基础 => 创建表
--创建表 CREATE TABLE userinfo3 ( ID INT PRIMARY KEY NOT NULL, --ID 整数类型,设置为主键,并且不能为空 name ) NOT NULL, ...
- django signals 信号
django signals 信号 配置方式 app下的 __init__.py default_app_config="web.apps.WebConfig" #初始化app配置 ...
- Typescript 和 Javascript之间的区别
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...
- .NET 常用ORM之NHibernate
NHibernate做.Net应该都不陌生,今天我们就算是温故下这个技术,概念性的东西就不说了,这次主要说本人在实际使用的遇到的问题,比较费解现在就当是记录下,避免以后再犯.本次主要使用的情况是1对N ...
- centos7多网卡配置bond0 (mode6无需交换机做配置)
1.执行setup命令-->网络配置-->本例中四块网卡. 2.ifconfig列出四块网卡. 3.我们的目标,绑定eth0和eth1两块网卡作为公网网卡,ip设置为192.168.0.5 ...
- 码云和git
第一步: 码云上注册: 第二部: 创建项目;根据需求,哒哒哒全部填完 第三部: 设置公钥(重点来了,头晕) 1. 打开git终端 git Bash 2.进入.ssh目录 输入命令 cd ~/.ssh ...
- nginx cookie 会话保持功能
sticky 会话保持,基于自定义cookie 进行会话保持的方式 安装包下载地址:https://github.com/bymaximus/nginx-sticky-module-ng ./conf ...
- golang从文件按行读取并输出
package main import ( "fmt" "os" "bufio" "io" "time&quo ...
- 让Visualstudio在win10下使用管理员方式运行
https://www.cnblogs.com/zhaogaojian/p/10124629.html vs右键高级设置管理员运行后,每次直接运行使用的是管理员方式,但是如果直接在sln文件上点击使用 ...