Editorial for Bedao Mini Contest 06 - PYRAMID


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Solution từ bedao

Gọi ~a~ là độ dài cạnh góc vuông ngắn, ~b~ là độ dài cạnh góc vuông dài, ~c~ là độ dài cạnh huyền.

Theo đề bài, ta có:

~X = c - a~ hoặc ~X = c - b~ ~(1)~

~Y = a + b~ ~(2)~

Theo định lý Pytago và cố định ~1~ cạnh góc vuông để tìm cạnh góc vuông còn lại, ta có:

~\rightarrow a^2 + (Y-a)^2 = (X+a)^2~

~\rightarrow a^2 = (X+a)^2 - (Y-a)^2~

~\rightarrow a^2 = (X-Y+2a) \times (X+Y)~

~\rightarrow a^2 - 2a \times (X+Y) - X^2 + Y^2 = 0~

Từ đây ta thấy biểu thức có dạng là phương trình bậc ~2~, ta lại có:

~A = 1~, ~B = 2 \times (X+Y)~, ~C = -X^2 + Y^2~

~\rightarrow Δ = B^2 - 4AC~

~\rightarrow a_1 = \frac{-B+\sqrt{Δ}}{2A}, a_2 = \frac{-B-\sqrt{Δ}}{2A}~

Nhận xét: Ở ~2~ nghiệm ~a_1~ và ~a_2~ sẽ luôn có một nghiệm sai khi so với điều kiện ~(1)~, ~(2)~ và ~a~, ~b~, ~c~ phải lớn hơn ~0~ nên ta sẽ ưu tiên nhận nghiệm đúng và nhỏ hơn đối với ~a~ bởi vì đề bài yêu cầu ~a < b~.

~\rightarrow b = Y-a~

~\rightarrow c = a^2 + b^2~

Lưu ý: Khi ~a > b~ mà lấy ~c = X + min(a,b)~ thì khi xuất bộ ba ~a~, ~b~, ~c~ sẽ không thỏa mãn một tam giác vuông cho nên cần phải tính ~c = X + max(a,b)~ rồi mới cho ~a~ nhận nghiệm nhỏ hơn.


Solution được đóng góp từ bạn letangphuquy

Đặt ~a,b,c~ lần lượt là độ dài hai cạnh góc vuông và độ dài cạnh huyền của tam giác.

Theo đề bài, ta có :

  • ~c - a = X \Leftrightarrow c = X + a~ ~(*)~

  • ~a + b = Y \Leftrightarrow b = Y - a~

Theo định lý Pytago : ~c = \sqrt{a^2+b^2} = \sqrt{a^2+(Y - a)^2}~

Thay ~c~ vào ~(*)~ ta có

~\sqrt{a^2+(Y-a)^2} = X + a \\ \Leftrightarrow a^2 + (Y-a)^2 = (X+a)^2 \\ \Leftrightarrow (Y-a)^2 = X(X + 2a) \\ \Leftrightarrow a^2 - 2aX - 2aY = X^2 - Y^2 \\ \Leftrightarrow a^2 - 2a(X+Y) + (X+Y)^2 = (X+Y)2X \\ \Leftrightarrow (a - (X+Y))^2 = 2X(X+Y) \\ \Leftrightarrow a = (X+Y) \pm \sqrt{2X(X+Y)} ~

Vì ~a < Y~ nên ~a~ sẽ nhận nghiệm ~a = (X+Y) - \sqrt{2X(X+Y)}~

Từ đó ta sẽ tính được ~b,c~ tương ứng. Lưu ý in ra theo thứ tự ~min(a,b)~, ~max(a,b)~ như đề bài yêu cầu


Comments

Please read the guidelines before commenting.


There are no comments at the moment.