解题报告
题目 :http://poj.org/problem?id=1151
题目大意 :给定平面上n个矩阵(n<100)求总面积
算法 :离散化 + 染色
思路 :如果点都是整数,而且矩阵左下角和右上角的点的坐标很小,那么我们可以开一个二维数组area[MAX_X][MAX_Y],然后如果有矩阵(1,1,3,4)我们就将x 1到3,y 1到4标记为1,当有矩阵 (2,3,4,5)那我们在把2到4,3到5标记为1.这样就解决的矩阵间重复的问题。最后看一下area里有几个1. 现在矩阵规模没有改变,但是点的坐标是浮点型而且最大100000,我们把它转化为上面的模型,将点离散化为1,2,3.。。。。。。然后染色。然后看为1的小格area[i][j],那么这个格对应于原来的面积就是(ori[i + 1] – ori[i]) * (ori[j + 1] * ori[j])
提交情况 :runtime error 1次
经验与收获 :练习了map的同时,学习了矩形面积并的解决方法。
AC code :
#include <cstdio>
#include <map>
#include <algorithm>
using namespace std;
#define MAXN 410
struct POINT{
};
struct _Matrix{
} matrix[MAXN];
double point[MAXN * 2], ori[MAXN * 2];
map<double,int> Pt;
map<double,int>::iterator it;
bool area[MAXN][MAXN];
bool comp(const double &A, const double &B){
}
int main(){
}