传送门 设p[0] = (-10001,-10001) 把所有点按p[0]极角排序, s[i][j]表示三角形p[0]p[i]p[j]内的总价值,若i到j极角增大则s为正,否则s为负. 那么答案就是按顺序多边形每条边两个端点的s值之和的绝对值. 如何求s 枚举每个点x,建一颗平衡树,把极角排序在它后面的点一个个加入平衡树,树中的权值为按x极角排序的值.那么加入一个点y时,权值小于y的权值的所有点的和即为s[x][y]. //Achen #include<algorithm> #include&…