线段树
五彩斑斓的黑橘猫
这是一个最坏的时代,也是一个最好的时代。
展开
-
HDU 1166 敌兵列阵
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166思路:简单的线段树#include#include#includeusing namespace std;const int N=50005;struct node{ int x,y; int sum;}list[4*N];int num[N];v原创 2012-09-10 21:50:06 · 583 阅读 · 0 评论 -
HDU 1754 I Hate It
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754思路:简单的线段树问题#include#includeusing namespace std;const int N=200010;struct node{ int l,r; int max;}line[4*N];int num[N];int Maxn(i原创 2012-09-10 21:53:50 · 408 阅读 · 0 评论 -
线段树题目分类+简单解释
转摘地址:http://blog.csdn.net/zxy_snow/article/details/6952046线段树//zoj 1610 线段覆盖//poj 2777 线段覆盖//poj 2528 需要离散化,建树不同,需要处理不同->注意这组数据 3 1 10 1 3 6 10 the ans is 3.//hdu 1754 求区间最大值//hdu 116转载 2012-09-11 10:40:34 · 801 阅读 · 0 评论 -
HDU 1698 Just a Hook
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698思路:线段树操作区域覆盖每个线段树的结点,存储该结点所代表区间的金属c,如果该区间全为同样的材料,则用一个正数表示,如果含有多种材料,则用-1表示,每次执行替换操作时,如果所要替换的材料与区间材料一样,则停止,如果所要替换区间跟当前结点区间一致,则直接将所要替换材料赋给当前结点原创 2012-09-11 14:49:04 · 497 阅读 · 0 评论 -
POJ 2777 Count Color
题目链接:http://poj.org/problem?id=2777经典的线段树问题1)建树,树节点有三个域,分别为左右端点l,r与代表颜色的c,当c等于0的时候表示被多种颜色覆盖了.2)更新,如果在查找的过程中遇到当前区间的颜色大于0,也就是说这个区间已经被完全染色过,那么就把这个区间的颜色值往下传递,然后把这个区间的颜色值c原创 2012-09-11 21:12:43 · 640 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers
题目链接:http://poj.org/problem?id=3468思路:线段树+lazy思想 当要增加的区间覆盖当前区间,则直接打上标记返回,当下次查询这个区间儿子区间的时候,直接标记往下传。可以想象,这个标记表示的是这个区间表示的整个区间的标记,是整个子树的性质,当你不需要用到这个区间的儿子区间的时候,你可以不把操作都做到底,而原创 2012-09-12 14:40:05 · 547 阅读 · 0 评论 -
POJ 3246 Balanced Lineup
题目链接:http://poj.org/problem?id=3264思路:简单线段树问题,只要标记区间的最大最小值,建树和查询。#include#includeusing namespace std;#define N 100010#define L(a) (a)<<1#define R(a) (a)<<1|1struct node{ int l,原创 2012-09-12 19:10:29 · 1041 阅读 · 1 评论 -
HDU 2795 Billboard
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795线段树问题:思路:当前访问的结点的最大值小于给定值,直接返回-1。否则,左子树的最大值大于当前值,那么访问左子树,小于则访问右子树,直到叶子结点结束。其中h=min(h,n) (RE两次, >.#include#includeusing name原创 2012-09-13 20:22:23 · 476 阅读 · 0 评论