线段树
文章平均质量分 68
墨温温
呆萌理工女~ ~
展开
-
HDU 1166 (敌兵布阵)
线段树,更新,区间求和。 #include #include #include #include using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define maxx 50005 int sum[maxx<<2]; int n; void pushplus(int rt) { sum[rt原创 2015-07-13 16:23:02 · 357 阅读 · 0 评论 -
POJ 3264
线段树,求区间上的最大值和最小值之差。水题,套模板即可。 不会起变量名是硬伤,呜呜呜~~~ AC代码: #include #include #include using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define maxx 50005 int max0[maxx<<2],min原创 2015-07-13 23:26:25 · 319 阅读 · 0 评论 -
HDU 1754
线段树,求区间的最值,更新单点的值。 比较坑的是: 首先忘记了max的头文件,导致一直CE, 再次读字符前忘记吃掉空格,但是不知道为什么一直TE,文件读不到结尾,O__O"…。 板刷TLE, orz。 AC代码: #include #include #include using namespace std; #define lson l,m,rt<<1 #defin原创 2015-07-13 17:58:47 · 367 阅读 · 0 评论 -
POJ 3468
线段树,区间更新,区间求和。 #include #include using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define maxx 100010 long long sum[maxx<<2]; long long add[maxx<<2]; void push_up(int rt)原创 2015-07-13 21:28:53 · 227 阅读 · 0 评论 -
POJ 2528 (线段树+离散化)
题意:在墙上贴海报,给出每次所贴的区间,问最后能看到几张海报。 思路:线段树,但是所给区间长度最大为1000000,必须离散化处理。 离散化:把所有点按序排列;去掉重复的点;给间隔大于一的两数之间添加一个数(避免错误);排序;查找出左右区间的位置(即离散化后所对应的数值) 线段树:用模板即可解决(一个变量名写错,调试了一中午,呜呜~~温温好失败) AC代码: #include原创 2015-07-16 16:50:41 · 639 阅读 · 0 评论