日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2021牛客寒假算法基础集训营1 E.三棱锥之刻

發(fā)布時(shí)間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021牛客寒假算法基础集训营1 E.三棱锥之刻 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

E.三棱錐之刻

P為正三棱錐內(nèi)部的中心,PA,PD為正三棱錐外接球半徑,OP為正三棱錐內(nèi)切球半徑

結(jié)論:已知正三棱錐的棱長(zhǎng)為a,那么正三棱錐外接球半徑為:64a\frac{\sqrt{6}}{4}a46??a ,正三棱錐內(nèi)切球半徑為:612a\frac{\sqrt{6}}{12}a126??a

//minn為正三棱錐內(nèi)切球半徑,maxx為正三棱錐外接球半徑 double minn = sqrt(6.0) * a / 12, maxx = sqrt(6.0) * a / 4; double area;

本題分三種情況:

  • 當(dāng)染色半徑 r≤612ar ≤ \frac{\sqrt{6}}{12}ar126??a時(shí), 即染色球還未觸及正三棱錐內(nèi)壁,那么就無法染色
  • if (r <= minn) area = 0;//無法染色,染色面積自然為0
  • 當(dāng)染色半徑 r≥64ar ≥ \frac{\sqrt{6}}{4}ar46??a時(shí), 即染色球已經(jīng)包含整個(gè)正三棱錐,那么整個(gè)正三棱柱的內(nèi)部都會(huì)染色
  • else if (r >= maxx) area = sqrt(3.0) / 4 * f(a);//正三棱錐一個(gè)側(cè)面三角形的面積
  • 當(dāng)染色半徑 612a≤r≤64a\frac{\sqrt{6}}{12}a ≤ r ≤ \frac{\sqrt{6}}{4}a126??ar46??a 時(shí),分為兩個(gè)小情況:
    (1) 當(dāng)橫截面積 ≤ 是三角形的內(nèi)切圓 即 橫截圓的半徑 ≤ 36a\frac{\sqrt{3}}{6}a63??a
  • 此時(shí)OG為底面三角形ABC的內(nèi)切圓,OG為內(nèi)切圓的半徑為:d=36ad = \frac{\sqrt{3}}{6}ad=63??a ,染色圓的半徑為:r

    那么染色球與其中一個(gè)底面三角形ABC形成的橫截圓的半徑為:r1=(r?612a)2?d2r_1 = \sqrt{(r - \frac{\sqrt{6}}{12}a)^2 - d^2}r1?=(r?126??a)2?d2?

    所以:此時(shí)底面三角形ABC染色面積為:πr12πr_1^2πr12? ,有4個(gè)面就是 4πr124πr_1^24πr12?

    (2) 當(dāng) 正三角形的內(nèi)切圓 < 橫截圓 < 正三角形的外接圓 即 染色的面積如藍(lán)色陰影部分:

    這個(gè)面積分為兩個(gè)部分:等腰三角形+扇形

    此時(shí)的 r1,d,2dr_1, d, 2dr1?,d,2d 如圖所示

    3個(gè)等腰三角形面積 = r12?d2×d×3\sqrt{r_1^2-d^2} × d × 3r12??d2?×d×3

    扇形的弧度:α=(2π?acos(dr1)×2×3)÷3α = (2π - acos(\fracozvdkddzhkzd{r_1} )× 2 × 3) ÷ 3α=(2π?acos(r1?d?)×2×3)÷3

    3個(gè)扇形面積 = α2π×π×r12×3\frac{α}{2π} × π × r_1^2 × 32πα?×π×r12?×3

    else {if (r1 <= d) {area = PI * r1 * r1;} else {double area1 = sqrt(f(r1) - f(d)) * d * 3;//3個(gè)等腰三角形的面積//cos() 是已知一個(gè)角的弧度值 x,求該角的余弦值 y;而 acos() 是已知一個(gè)角的余弦值 y,求該角的弧度值 x。//扇形面積 = ((2 * PI - 三個(gè)等腰三角形的角度) * 3 / 3) / (PI * 2) * PI * f(r1);double area2 = ((((PI * 2) - (acos(d / r1) * 2) * 3) / 3) / (PI * 2)) * PI * f(r1);area = area1 + area2; }}

    完整的AC代碼:

    #include<cstdio> #include<iostream> #include<cstring> #include<string> #include<cmath> #include<algorithm> #define ll long long #define int ll #define PI acos(-1) #define MOD 1000000007 using namespace std; int read() {int w = 1, s = 0;char ch = getchar();while (ch < '0' || ch>'9') { if (ch == '-') w = -1; ch = getchar(); }while (ch >= '0' && ch <= '9') { s = s * 10 + ch - '0';ch = getchar(); }return s * w; } //x的平方 double f(double x) {return x * x; } signed main() {double a;//題目給的正三棱錐的棱長(zhǎng)double r;//題目給的染色的半徑scanf("%lf%lf", &a, &r);// sqrt(6) * a / 12;是正三棱柱內(nèi)切球的半徑// sqrt(6) * a / 4; 是正三棱柱外接球的半徑double minn = sqrt(6.0) * a / 12, maxx = sqrt(6.0) * a / 4;/*本題分三種情況:Ⅰ. 當(dāng)染色半徑 r <= sqrt(6) * a / 12; 那么就無法染色Ⅱ. 當(dāng)染色半徑 r >= sqrt(6) * a / 4; 那么整個(gè)正三棱柱的內(nèi)部都會(huì)染色Ⅲ. 當(dāng)染色半徑 sqrt(6) * a / 12 < r < sqrt(6) * a / 4 時(shí)分為兩個(gè)小情況:(1) 當(dāng)橫截面積 恰好是三角形的內(nèi)切圓(2) 當(dāng)橫截面積 大于正三角形的內(nèi)切圓 小于正三角形的外接圓*/double r1 = sqrt(f(r) - f(sqrt(6.0) * a / 12));//在正三棱錐的一個(gè)側(cè)面被染色截面圓的半徑double d = sqrt(3.0) / 6 * a;//正三角形的內(nèi)切圓的半徑double area;if (r <= minn) area = 0;else if (r >= maxx) area = sqrt(3.0) / 4 * f(a);//正三棱錐一個(gè)側(cè)面三角形的面積else {if (r1 <= d) {area = PI * r1 * r1;} else {double area1 = sqrt(f(r1) - f(d)) * d * 3;//3個(gè)等腰三角形的面積//cos() 是已知一個(gè)角的弧度值 x,求該角的余弦值 y;而 acos() 是已知一個(gè)角的余弦值 y,求該角的弧度值 x。double area2 = 3 * ((((PI * 2) - (acos(d / r1) * 2) * 3) / 3) / (PI * 2)) * PI * f(r1);//扇形面積 = ((2 * PI - 三個(gè)等腰三角形的角度) * 3 / 3) / PI * 2 * PI * f(r1);area = area1 + area2;}}printf("%.6lf\n", area * 4);return 0; }

    總結(jié)

    以上是生活随笔為你收集整理的2021牛客寒假算法基础集训营1 E.三棱锥之刻的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。