= = 模板水题。看数据就可以做了。
输出被炸弹轰炸之后,所有王国停电的总面积,保留小数点后两位。
题目中说到每个王国的边界是围城这些点的最小周长,所以可以推出,每个王国都是一个凸包圈住的点集;
第一步计算出凸包,在算出面积就好了。(已经停电的面积不可以重复累加。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int MX = 105;
struct point
{
double x,y,d;
point( double a,double b):x(a),y(b){}
point(){}
};
typedef point vec;
vec operator - ( point a,point b)
{
return vec(a.x-b.x,a.y-b.y);
}
struct poly
{
point p[MX];
int ver;//顶点数
point power;//电站
int bomb;// 已经被炸毁 1
};
point p0;//第一点
point b;//炸弹坐标
poly kingdom[25]