求矩形周长的并
之前做过一个求矩形面积并的题目
用到了扫描线这种思想
这个题目可以照搬,作两次扫描线,一次x轴,一次y轴,同样标记入边,出边,当边是最外面的边时
周长就加上这条边的长度的两倍,入边标志为1,出边为-1,当加入边之后count==0,则表明了这条边是最外面的边。
看了解题报告,做法比较高效,一次扫描线就可以。下回再看。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define ls t<<1
#define rs t<<1|1
#define midt (tr[t].l+tr[t].r)>>1
using namespace std;
const int maxn=5011;
int x[maxn*2],y[maxn*2];
int ans;
struct no
{
}f[maxn*2];
struct node
{
}g[maxn*2];
struct
{
}tr[maxn*8];
int maketree(int t,int l,int r,int d[])
{
}
int pushdown(int t)
{
}
int modify(int t,int low,int high,int txt,int d[])
{
}
int main()
{
}