poj 2528 Mayor's posters

题目大意:     往墙上贴海报,可以互相覆盖,问最终可以看到多少张海报?露出一部分的也算可以看到。 分析:     由于本题数据比较大,因此处理时需要离散化,离散化是一种压缩区间的手段,可以降低复杂度。例如:[100,1000],[1010, 2012],[880, 2013];我们所需要的数据也就是100,1000,1010,2010,880,2013,对于[-∞,99],[101,87...
阅读(595) 评论(0)

poj 3468 A Simple Problem with Integers

#include #include #include using namespace std; #define lson l, m, rt << 1 #define rson m+1, r, rt << 1 | 1 typedef __int64 LL; const int MAXN = 100010; LL add[MAXN<<2]; LL sum[MAXN<<2]; void P...
阅读(537) 评论(0)

1698 Just a Hook 线段树区间更新

线段树区间更新,有个懒惰标记,每次更新不进行到底,,用懒惰标记使得更新延迟到下次需要更新或者询问到的时候。 #include #include #include #include #define lson l, m, rt << 1 #define rson m+1, r, rt << 1 | 1 using namespace std; const int MAXN = 20002...
阅读(622) 评论(0)

hdu 2795 Billboard 线段树

#include #include #include #include #define lson l, m, rt << 1 #define rson m+1, r, rt << 1 | 1 using namespace std; const int MAXN = 222222; int h, w, n; int MAX[MAXN<<2]; void PushUp(int rt)...
阅读(635) 评论(0)

1394 Minimum Inversion Number 线段树

题目大意:给定数列a[1]、a[2]··········a[n],每次将移动首项移动到末尾,每移动一次,计算数列的逆序数,在一系列移动之后,求最小的逆序数。 分析:    首先求出输入序列的逆序数,然后每次取其与移动一次之后的逆序数的最小值。n-1表示最大数,n-1 - x[i]表示首项x[i]移动到数列末尾后会产生几个逆序,但是当x[i]作为首项时,会有x[i]个逆序,因此,n-1-x[i]...
阅读(584) 评论(0)

hdu 1754 I Hate It 线段树Test

#include #include using namespace std; #define lson l , m , rt << 1 #define rson m + 1 , r , rt << 1 | 1 const int maxn = 222222; int MAX[maxn<<2]; void PushUP(int rt) { MAX[rt] = max(MAX[rt<<1] , ...
阅读(627) 评论(0)

hdu 1166 敌兵布阵 线段树

#include #include #include #include #define lson l, m, rt << 1 #define rson m+1, r, rt << 1 | 1 using namespace std; const int MAXN = 50010; int sum[MAXN<<2]; void PushUp(int rt) { sum[rt...
阅读(561) 评论(0)
    个人资料
    • 访问:254842次
    • 积分:7044
    • 等级:
    • 排名:第3342名
    • 原创:471篇
    • 转载:19篇
    • 译文:0篇
    • 评论:16条