Tổng bình phương tất cả các cạnh (là đoạn thẳng nối 2 điểm)
ở đây gọi là điểm 1…n
Xét tất cả đoạn thẳng xuất phát từ điểm 1 gồm: 1-2, 1-3, …, 1-n
Tổng bình phương các cạnh có xuất phát điểm là đỉnh 1:
0 + (x_2-x_1)^2+ (x_3-x_1)^2 + .. + (x_n-x_1)^2\\
+\\
0 + (y_2-y_1)^2 + (y_3-y_1)^2 + .. + (y_n-y_1)^2\\
= X + Y
Xét cụm X ở cụm trên trước
X = x_1^2 - 2*x_1*x_1 + x_1^2 + x_2^2 - 2*x_1*x_2 + x_1^2 + x_3^2 - 2*x_1*x_3 + x_1^2 + .. + x_n^2 - 2*x_1*x_n + x_1^2\\
= (x_1^2 + x_2^2 + x_3^2 + ... + x_n^2) - 2*x_1*(x_1 + x_2 + x_3 + .. x_n) + n*x_1^2
Tổng x và tổng bình phương của x có thể duyệt mảng và tính trước 1 lần duy nhất với O(n). Như vậy khi tính X chỉ tốn O(1)
Tương tự với Y ở cụm dưới
…
Lần lượt xét tất cả các điểm còn lại làm điểm xuất phát (cứ cho nó trùng luôn 1-2 2-1 luôn). Sau khi cộng xong thì chia 2 vì đã giải thích như trong ngoặc.
Tiếc là editor này hình như không có text color nên nếu khó hiểu thì xem text có màu này cho đễ