icpc2018-焦作-D-几何模拟
Posted zzqc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了icpc2018-焦作-D-几何模拟相关的知识,希望对你有一定的参考价值。
https://nanti.jisuanke.com/t/34142
上午可能是供氧不足,推的式子死活不对,晚上莫名其妙又来了一次就过了。
分两种情况讨论,如果能够完全进入弯道答案就是固定的就是: sqrt(b^2 + (a+r)^2)
否则的话考虑过左后方那个点做垂直y的直线,答案就是圆心到这条直线最短距离,利用已知角度d可以计算得到。
红线就是答案。
1 #include <bits/stdc++.h> 2 using namespace std; 3 const double PI=acos(-1.0); 4 int main(){ 5 int a,b,r,d; 6 int t; 7 cin>>t; 8 while(t--){ 9 cin>>a>>b>>r>>d; 10 if(atan(1.0*b/(a+r))/PI*180<d){ 11 printf("%.12f ",sqrt(1.0*(b*b)+(a+r)*(a+r))-r); 12 } 13 else{ 14 double agl=d/180.0*PI; 15 printf("%.12f ",-r+1.0*(a+r)*cos(agl)+sin(agl)*b); 16 } 17 } 18 return 0; 19 }
以上是关于icpc2018-焦作-D-几何模拟的主要内容,如果未能解决你的问题,请参考以下文章
icpc2018焦作Mathematical Curse(动态规划)