HDU 5462 2015沈阳网络赛 Manors (半平面交)
题解:先根据I(i)==I(j)列方程整理方程。 Ii=Ij
所以 ∑mk=1((x−xi)2+(y−yi)2)=∑mk=1((x−xj)2+(y−yj)2)
所以 ∑mk=1(x2−2xxi+x2i+y2−2yyi+y2i)=∑mk=1(x2−2xxj+x2j+y2−2yyj+y2j)
所以 −2∑mk=1(xi−xj)∗x−2∑mk=1(yi−yj)∗y+∑mk=1(x2i−x2j+y2i−y2j)=0
可令: A=−2∑mk=1(xi−xj)
B=−2∑mk=1(yi−yj)
C=∑mk=1(x2i−x2j+y2i−y2j)
发现整理之后恰好是一条直线Ax + By + C = 0。 因为系数是前缀和或者是平方和,先预处理,然后扫一遍这n个人,每个人对应n-1个直线,同时加上4个边界直线,一共n-1+4=n+3条直线,求半平面交后再求面积,就是第i个人的面积。时间复杂度O(N^3logN)。
#pragma comment(linker, "/STACK:102400000,102400000")//#include#include #include #include #include #include #include #include
暂时没有评论,来抢沙发吧~