题目大意:给出N个凸多边形,求这些多边形的面积并。
思路:N只有不到10,乱搞就可以。还有一种更优的解法,似乎只需要O(n^2logn)的时间就可以解决。但是我并不会,想了解的参照:http://wyfcyx.is-programmer.com/posts/80378.html
下面说乱搞的思路。由于都是凸多边形,那么任意一条垂直于x轴的直线在多边形内的区域一定是一条线段(或者什么都没有),那么我们将所有多边形按照梯形进行剖分,求出每个部分的梯形中腰长度并就可以算出总的面积了。
题目网址见:http://oj.jdfz.com.cn:8081/oldoj/problem.php?id=1005
CODE:
#define _CRT_SECURE_NO_WARNINGS
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <algorithm>
#define MAX 20
#define EPS 1e-8
using namespace std;
#define max(a,b) ((a) > (b) ? (a):(b))
#define min(a,b) ((a) < (b) ? (a):(b))
#define INRANGE(x,y,c) ((c <= y && c >= x) || (c <= x && c >= y))
struct Point{
double x,y;
Point