当前位置: 代码迷 >> 综合 >> 线段树 hdu1828 Picture
  详细解决方案

线段树 hdu1828 Picture

热度:15   发布时间:2023-12-14 03:58:50.0

最经典的一道周长并的题目。

其实周长并并没有想象那么难。

首先,肯定要确定,我们需要做两次扫描线。

第一次是从下向上,第二次是从左向右,这样得到的才是四周的周长

其次,,扫描的时候如何更新周长呢?

每次增加线段后,把新得到的长度与之前的做比较,两者之差的绝对值就是这次增加线段后的长度

所以每次都这样更新,最后得到的就是周长了。

#include<map>
#include<set>
#include<cmath>
#include<stack>
#include<queue>
#include<cstdio>
#include<string>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define root 0,20004,1int const MP = 10000 + 5;
int const MX = 2e4 + 5;int cnt[MX << 2];
int S[MX << 2];struct Que {int d;int top, L, R;Que() {}Que(int _top, int _L, int _R, int _d) {t
  相关解决方案