Description:
Each vertex of the polygon is given sequentially, and the center of gravity is obtained.
# Include <iostream> <br/> # include <algorithm> <br/> # include <cmath> <br/> using namespace STD; </P> <p> struct point {<br/> int X, Y; <br/>}; </P> <p> point P [1000001]; </P> <p> double CAL (int I, Int J) <br/>{< br/> double res; </P> <p> res = P [I]. x * P [J]. y-P [J]. x * P [I]. y; <br/> return res; <br/>}</P> <p> int main () <br/>{< br/> int t, n; <br/> double CX, Cy; </P> <p> scanf ("% d", & T); <br/> for (int t = 0; T <t; t ++) <br/>{< br/> scanf ("% d", & N); <br/> for (INT I = 0; I <n; I ++) <br/> scanf ("% d", & P [I]. x, & P [I]. y); <br/> P [N]. X = P [0]. x; <br/> P [N]. y = P [0]. y; </P> <p> double A = 0; <br/> for (I = 0; I <n; I ++) <br/>{< br/> A + = CAL (I, I + 1); <br/>}< br/> A/= 2; </P> <p> Cx = Cy = 0; <br/> for (I = 0; I <n; I ++) <br/>{< br/> cx + = (P [I]. X + P [I + 1]. x) * CAL (I, I + 1); <br/> Cy + = (P [I]. Y + P [I + 1]. y) * CAL (I, I + 1); <br/>}< br/> CX/= 6 * A; <br/> cy/= 6 *; </P> <p> printf ("%. 2lf %. 2lf/N ", CX, CY); <br/>}< br/> return 0; <br/>}