BỘ SƯU TẬP CÁC ĐỒNG XU - mã: LEM1 - SPOJ


Link: http://vn.spoj.com/problems/LEM1/





=======================================
Cho N đồng xu có bán kính lần lượt là các số thực dương r1.. rN. Được đặt xung quanh một vòng tròn sao cho:
Mỗi đồng xu tiếp xúc với 2 đồng xu đặt cạnh nó và tiếp xúc với vòng tròn.
Biết được bán kính của từng đồng xu. Yêu cầu: Tìm bán kính vòng tròn

Input
Dòng đầu ghi số nguyên dương N
Dòng tiếp theo ghi N số ri ( 1 ≤ i ≤ N )

Output
Gồm 1 dòng duy nhất ghi bán kính hình tròn ( độ chính xác đến 3 chữ số sau dấu phẩy )

Example
Input:
4
2 2 2 2
Output:
0.828

Giới hạn
1 ≤ N ≤ 10000
1 ≤ ri ≤ 100000

====================================================

Code: LEM1.PAS
Ý tưởng chom chỉa trong quyển KC-BOOK 



Gọi đồng xu là vòng tròn đi cho dễ heng :)))))
-Cho O là tâm cái vòng tròn nhỏ ở trong....R là bán kính của nó (cái chúng ta cần tìm)
-O1,O2,..On lần lượt là tâm của mấy cái vòng tròn xung quanh
R1,R2,....,Rn lần lượt là bán kính của các vòng tròn xung quanh....ok, ta đi phân tích cách giải:

vậy nhé: rõ ràng ta thấy:

gócO1OO2+gócO2OO3+gócO3OO4+gócO4OO5+góc O5OO6+gócO6OO1 =360 độ

** Mấu chốt vấn đề nằm ở cái biểu thức đấy:
Việc tính các góc khá dễ dàng thông qua định lí COSIN (góc trong tam giác thường, không phải tam giác đặc biệt nên phải sử dụng định lí COSIN hoy)

quên lí thuyết coi chỗ này nhé: định lí cosin

Ví dụ một cái coi chơi: chúng ta đi tính gócO1OO2, rõ ràng góc này thuộc tam giác O1OO2 có các cạnh như sau:
    + O1O2 = R1+R2 (2 cái số này có hết rồi)
    + OO1   = R1+R (ẩn R => đang tìm)
    + OO2   = R2+R (ẩn R => đang tìm)

rồi áp dụng định lí Cosin vô: (code tin học) == R thay bằng k rồi đó

v:=(sqr(r[1]+k)+sqr(r[2]+k)-sqr(r[1]+r[2]))/(2*(r[1]+k)*(r[2]+k)); (1)
v:=arccos(v); (2)
-------------
vậy nè:  cái v trong (1) thật ra là cos của góc O1OO2 đó
         cái v trong (2) chuyển cos thành radian
các góc còn lại tính tương tự như góc tính bên trên, ta còn lại ẩn R (biến k trên code)

Ta sử dụng chặt nhị phân tìm R thay vào cái biểu thức trên đầu hết coi có đúng không, nếu đúng thì in ra


xong rồi, có nhiêu đó đó, chúc các bác AC, em AC gòi
========================
 
CẢM ƠN CÁC BẠN ĐÃ XEM !!! ×