P147PROG - ROUND 7G - Điểm cân bằng

Link Sub: http://www.spoj.com/PTIT/problems/P147PROG/
Người Gửi: Dương Lee

  • Problem:

Trong không gian hai chiều cho một tập hợp n điểm, giả sử mỗi điểm được đặc trưng bởi tọa độ (x_i,y_i) và trọng lượng m_i. Moment trọng lượng theo trục x của tập hợp điểm được xác định theo
công thức: M_x = sum all m_i * (b - y_i).  
Còn moment trọng lượng theo trục y là: M_y = sum all m_i * (a - x_i).  
Điểm cân bằng của tập hợp điểm trên là điểm có tọa độ (a, b) sao cho cả hai moment trên đều bằng 0.
Input
Mỗi bộ test bắt đầu với số nguyên n là số điểm, n dòng tiếp theo lần lượt ghi tọa độ x_i, y_i và giá trị mi của từng điểm. Các bộ test ngăn cách bởi một dòng trống.  
Input kết thúc khi gặp n<0.
Output
Với mỗi bộ test, ghi ra màn hình thứ tự bộ test và giá trị tọa độ a, b tìm được. Các giá trị tọa độ được làm tròn đến 2 số sau dấu phẩy.
Example:
Input
3
1 1 10
22 1 10
1 31 10
3
10 10 100
20 20 50
10 40 30
-4
Output:
Case 1: 8.00 11.00
Case 2: 12.78 17.78

  • Solution:

Mình sẽ nói về x nhé còn y sẽ tương tự: - Tìm x_min và x_max - Chặt nhị phân trên số thực với điểm đầu là x_min, điểm cuối là x_max. - Với mỗi lần chặt thì tính theo công thưc M_y bên trên. - tg = Lấy phần nguyên của M_y*100 (vì đề yêu cầu làm tròn hai chữ số). - Nếu tg == 0 thì giá trị chặt đó là giá trị cần tìm. Nếu không? thì chia ra các khoảng tiếp theo để tìm. - Lúc in ra thì áp dụng in trong C là %.2f nó sẽ tự động làm tròn.

  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »