HDU 6362.oval-and-rectangle-數學指望、微積分 (2018 Multi-University Training Contest 6 1001)

 

2018 Multi-University Training Contest 6php

 

6362.oval-and-rectangleios

 

題意就是橢圓裏畫內接矩形,問你矩形周長的指望。spa

 

比賽的時候推了公式,可是草稿紙丟了,直接看代碼吧,和官方題解的公式有點不同,可是有官方題解就差很少了。code

注意:acos(-1.0)=asin(1.0)=π,其餘的就沒了,具體的怎麼推的也懶得再推一遍了。blog

比賽的時候,我推的公式,隊友算指望,忘了/b,一直不對,後來寫上ans/=b;過了。。。ip

官方題解:ci

 

代碼:get

 1 //1001-6362-機率-微積分
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<algorithm>
 6 #include<bitset>
 7 #include<cassert>
 8 #include<cctype>
 9 #include<cmath>
10 #include<cstdlib>
11 #include<ctime>
12 #include<deque>
13 #include<iomanip>
14 #include<list>
15 #include<map>
16 #include<queue>
17 #include<set>
18 #include<stack>
19 #include<vector>
20 using namespace std; 21 typedef long long ll; 22 
23 const double PI=acos(-1.0); 24 const double eps=1e-6; 25 const ll mod=1e9+7; 26 const int inf=0x3f3f3f3f; 27 const int maxn=1e5+10; 28 #define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
29 
30 double a,b; 31 double solve(double c) 32 { 33     return (b*b/2)*(asin(c/b)+(c/(b*b))*sqrt(b*b-c*c))*a/b; 34 } 35 int main() 36 { 37     int t; 38     cin>>t; 39     while(t--) 40  { 41         cin>>a>>b; 42         double ans1=solve(b)-solve(0); 43         double ans2=0.5*b*b; 44         double ans=4.0*(ans1+ans2)/b; 45         ans-=(double)5e-7; 46         printf("%.6f\n",ans); 47  } 48 }

 

 

 

溜了。string

相關文章
相關標籤/搜索