杭电2018多校第六场(2018 Multi-University Training Contest 6) 1001.oval-and-rectangle (HDU6362)-数学期望微积分(示例代(

Posted zero-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杭电2018多校第六场(2018 Multi-University Training Contest 6) 1001.oval-and-rectangle (HDU6362)-数学期望微积分(示例代(相关的知识,希望对你有一定的参考价值。

 

2018 Multi-University Training Contest 6

 

6362.oval-and-rectangle

 

题意就是椭圆里画内接矩形,问你矩形周长的期望。

 

比赛的时候推了公式,但是草稿纸丢了,直接看代码吧,和官方题解的公式有点不一样,但是有官方题解就差不多了。

注意:acos(-1.0)=asin(1.0)=π,其他的就没了,具体的怎么推的也懒得再推一遍了。

比赛的时候,我推的公式,队友算期望,忘了/b,一直不对,后来写上ans/=b;过了。。。

官方题解:

技术分享图片

 

代码:

 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
",ans);
47     }
48 }

 

 

 

溜了。

 

以上是关于杭电2018多校第六场(2018 Multi-University Training Contest 6) 1001.oval-and-rectangle (HDU6362)-数学期望微积分(示例代(的主要内容,如果未能解决你的问题,请参考以下文章

2019杭电多校第六场hdu6638 Snowy Smile(线段树+枚举)

2019 杭电多校 第六场

多校第六场 1003 hdu 5355 Cake(贪心)

hdu多校第六场1008 (hdu6641)TDL 暴力

2019HDU多校第六场1009 Three Investigators——杨表

2020hdu多校第六场1006A Very Easy Graph Problem