2018ICPC焦作 D-Keiichi Tsuchiya the Drift King /// 几何
题目大意:
https://nanti.jisuanke.com/t/34142
有一个弯道抽象成圆的一部分 车子抽象成矩形
漂移过程中矩形上边会与圆的圆心在同一条直线上
以右上点贴着弯道边缘进行漂移
看不懂题意导致几何题没能做出来 我这个替补选手的临时补位真是愧对队友
所幸是模拟赛 英语渣的痛希望四级放过我

车子漂移时 实际上最远点会画出一个圆 如上红圆
那么当角度为如上a角时 轨道宽度此时必须最大
而角度大于a角时 轨道宽度同样必须为最大 根据勾股定理此时 maxw=sqrt( (a+r)*(a+r)+b*b ) - r
所以此时还需要解决角度小于a时的情况 如上橙色矩形
此时w可小于最大 发现其最远点与等于a角时的最远点 实际上在红圆上形成了一个圆心角 thi
那么就可以计算出thi对应的弦的长度L 而弦与直轨道的夹角ang也是可求的
所以可以得到w的减小值为L*sin(ang) 所以此时 w=maxw-L*sin(ang)
PS: 代码中的角度名与上述讲解并不一一对应
#include <bits/stdc++.h>
using namespace std;
const double PI=acos(-1.0);
const double eps=1e-;
int dcmp(double x) {
if(abs(x)<eps) return ;
else return x> ? :-;
}
int main()
{
int t; scanf("%d",&t);
while(t--) {
int a,b,r,d; scanf("%d%d%d%d",&a,&b,&r,&d);
double maxr=sqrt((a+r)*(a+r)+b*b);
double thi=acos((a+r)*1.0/maxr);
double arf=d*1.0/180.0*PI;
if(dcmp(arf-thi)>=) printf("%.12f\n",maxr-1.0*r);
else {
double ang=thi-arf;
double ang1=(PI-ang)/2.0;
double L=cos(ang1)*maxr*2.0;
double ang2=PI/2.0-ang1;
double bye=sin(ang2)*L;
printf("%.12f\n",maxr-1.0*r-bye);
}
} return ;
}
2018ICPC焦作 D-Keiichi Tsuchiya the Drift King /// 几何的更多相关文章
- Keiichi Tsuchiya the Drift King (c++三角函数公式)【几何+三角函数公式】
Keiichi Tsuchiya the Drift King 感谢: https://blog.csdn.net/xiao_you_you/article/details/89357815 题目链 ...
- 2018 ICPC 区域赛 焦作场 D. Keiichi Tsuchiya the Drift King(计算几何)
http://codeforces.com/gym/102028/problem/D 题意:根据题中给的那个图,然后题目给你 a,b,r,d,让你求出最小的满足矩形通过弯道的w 思路:
- D - Keiichi Tsuchiya the Drift King Gym - 102028D (几何)
题目链接:https://cn.vjudge.net/contest/275150#problem/D 题目大意: 问你能满足那个矩形可以顺利通过的条件,然后求出最小的w 具体思路:首先,我们应该将情 ...
- 2018ICPC焦作 F. Honeycomb /// BFS
题目大意: 给定n m表示一共n行每行m个蜂巢 求从S到T的最短路径 input 1 3 4 +---+ +---+ / \ / \ + +---+ +---+ \ \ / \ + + S +---+ ...
- ICPC 2018 焦作区域赛
// 2019.10.7 练习赛 // 赛题来源:2018 ICPC 焦作区域赛 // CF链接:http://codeforces.com/gym/102028 A Xu Xiake in Hena ...
- Codeforces - Gym102028 - 2018 Jiaozuo Regional Contest
http://codeforces.com/gym/102028 A. Xu Xiake in Henan Province 看起来像水题.乱搞一下,还真是. #include<bits/std ...
- 2018-2019 ACM-ICPC, Asia Jiaozuo Regional Contest
目录 Contest Info Solutions A. Xu Xiake in Henan Province D. Keiichi Tsuchiya the Drift King E. Resist ...
- SFC游戏列表(维基百科)
SFC游戏列表 日文名 中文译名 英文版名 发行日期 发行商 スーパーマリオワールド 超级马里奥世界 Super Mario World 1990年11月21日 任天堂 エフゼロ F-Zero F-Z ...
- 2018ICPC网络赛(焦作站)E题题解
一.题目链接 二.题意 给定一棵树,有四种操作: $1\ u\ v\ x$:把节点$u$到$v$路径上的所有点的权值乘以$x$: $2\ u\ v\ x$:把节点$u$到$v$路径上的所有点的权值加上 ...
随机推荐
- KMP算法 (字符串的匹配)
视频参考 对于正常的字符串模式匹配,主串长度为m,子串为n,时间复杂度会到达O(m*n),而如果用KMP算法,复杂度将会减少线型时间O(m+n). 设主串为ptr="ababaaababaa ...
- chromedriver安装(谷歌浏览器驱动安装)
如果程序执行错误,浏览器没有打开,那么应该是没有装 Chrome 浏览器或者 Chrome 驱动没有配置在环境变量里.下载驱动,然后将驱动文件路径配置在环境变量即可. chromedriver下载地址 ...
- python 出现indentationError:expected an indented block!
出现这个问题,代码一般是没问题的,剩下你要考虑: 1. 缩进对齐是否有问题 2. python脚本的格式是啥,如果你在linux上运行,编码需要是unix; (大部分情况下,我们是在windows下 ...
- Lambda表达式底层分析
一.我们先看下C#代码下Lamdba表达式的写法 // <summary> /// 写入日志委托 /// </summary> /// <param name=" ...
- Java SE(1)
Java SE基础回顾 1.循环语句中的break是终止全部循环,跳出循环体:而continue是终止本次循环,跳执行下一循环 2.return语句有两个作用:返回值:结束方法的运行 3.对于java ...
- GitHub不能访问问题
在C:\Windows\System32\drivers\etc文件夹下HOSTS里面最后添加: 192.30.253.112 github.com 192.30.253.113 github.com ...
- 自然数幂和&伯努利数(Bernoulli)
二项式定理求自然数幂和 由二项式定理展开得 \[ (n+1)^{k+1}-n^{k+1}=\binom {k+1}1n^k+\binom {k+1}2n^{k-1}+\cdots+\binom {k+ ...
- ajax--getJSON
penson.json [ { "name":"张三", "age":25, "sex":"男", ...
- 线程池 一 ForkJoinPool
java.util.concurrent public class ForkJoinPool extends AbstractExecutorService public abstract class ...
- BOM的介绍
BOM的概念 BOM(Browser Object Model) 是指浏览器对象模型,浏览器对象模型提供了独立于内容的.可以与浏览器窗口进行互动的对象结构.BOM由多个对象组成,其中代表浏览器窗口的W ...