http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18802
题意:给n个矩形 会重叠,求出重叠k次以上的那一块矩形,然后输出里面的整点数
其实和求 k次覆盖的矩形的面积是一个道理
求k次覆盖矩形中,k不超过10,用sum[N][12],sum[N][i]存,该节点N管辖的区间范围内i次覆盖的有效长度,sum[N][k]存的是k次以上的有效长度(包含k次)
还有一个问题是,本题求的不是面积,是整点数,可知一点线段长度为x的话,整点应该是x+1个,为了方便处理,我们直接把每个矩形的右端点X2+1。
同理,如果是面积的话,矩形并的 最顶端那条线会被忽略,而这里是求整点,因此我们 把矩形的上端点y2也加1,然后就按照正常的做法即可。
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <set>
#include <vector>
using namespace std;
const int N = 30005*2 ;
struct node
{
int flag;