Hướng dẫn giải của Bedao Regular Contest 02 - GEOMETRY2


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Tác giả: bedao

Trước hết, chúng ta cần xác định tâm ~O~ và chia hình ra thành các phần để tiện tính toán như hình sau: markdown

Trong hình, ta nhận thấy:

~\angle AOB~ = ~\angle BOC~ = ~\frac{360}{5}~ = ~72^\circ~

~\angle AOC = \angle AOB + \angle BOC = 72^\circ \times 2 = 144^\circ~

~AE = \sqrt{(2 \times AO \times OE) - cos(\angle AOE)} = \sqrt{(2 \times r^2) - cos(72^\circ)}~

Mà ~ABCDE~ là ngũ giác đều nên ~CD = DE~

~\angle BAE = \angle AED = \angle EDC = \angle DCB = \angle CBA = \frac{540}{5} = 108^\circ~

~S_{\triangle AOC} = \frac 1 2 \times (AO \times OC) \times sin(\angle AOC) = \frac1 2 \times r^2 \times sin(144^\circ)~

~S_{\triangle AOE} = \frac 1 2 \times (AO \times OE) \times sin(\angle AOE) = \frac1 2 \times r^2 \times sin(72^\circ)~

~S_{\triangle CDE} = \frac 1 2 \times (CD \times DE) \times sin(\angle EDC) = \frac1 2 \times r^2 \times sin(108^\circ)~

~S~ viên phân~_{AE}~ = ~S~ quạt~_{AOE}~ - ~S\triangle_{AOE}~ = ~(\frac{(\pi \times r^2 \times 72^\circ)}{360^\circ}) - S_{\triangle AOE}~

Tất cả các hình viên phân trong hình đều có diện tích bằng nhau nên dễ dàng chứng minh được ~\triangle{CDE} = \triangle{EDK}~ và ~\triangle{AOC} = \triangle{AOE}~

~S_{\triangle AEH} = \frac 1 2 \times (AE \times EH) \times sin(\angle AEH) = \frac1 2 \times r^2 \times sin(72^\circ)~

~\rightarrow~ Ta có công thức tính diện tích cuối cùng như sau: Với viên phân được viết tắ là VP

~S_{tổng} = 2 \times (2 \times S_{\triangle AOC} + S_{\triangle AOE} )+ S_{\triangle CED} + S_{\triangle AEH} + S_{VP}~

Code mẫu

#include<bits/stdc++.h>
#define ll long long
#define nmax 505
#define fas ios::sync_with_stdio(0); cout.tie(0); cin.tie(0)
#define el "\n"
#define fi first
#define se second
#define pi acos(-1)
#define lb long double
using namespace std;
lb r, BOD, BOC, DE, CDE, VP, CEH, x, AEH;
lb ssin(lb a)
{
    return sin(a * pi / 180);
}
lb scos(lb a)
{
    return cos(a*pi/180);
}
int main()
{
    fas;
    //freopen("CR2.inp","r",stdin);
   // freopen("CR2.out","w",stdout);
    int q;
    cin >> q;
    while(q--)
    {
        cin >> r >> x;
        // cout << scos(72);
        BOD = (1.0/2.0*(r*r))*ssin(144);
        BOC = (1.0/2.0*(r*r))*ssin(72);
        DE = sqrt((2.0*r*r)-(2.0*r*r*scos(72)));
        CDE = (1.0/2.0*(DE*DE))*ssin(108);
        VP = 2.0*(((pi*r*r*72.0)/360.0)-BOC);
        AEH = (1.0/2.0*(DE*x)*ssin(72));
       // cout << BOD << " " << BOC << " " << DE << " " << CDE << " " << VP << " " << CEH << el;
        lb res = (BOD*2.0+BOC)*2.0+CDE+VP+CEH-VP/2.0+AEH;
        cout << fixed << setprecision(9) << res << "\n";
    }
}

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    adc  đã bình luận lúc 8, Tháng 8, 2022, 8:32

    sao trong solution lại ghi tg AOC = tg AOE và tg CDE = tg EDK ạ mà e có thấy bằng nhau đâu ạ :((