摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=4027 线段树。 一个很大的数(< 263),最多也就进行几次开平方操作就会达到1了,所以每次更新,如果区间有的点不为1,那么就直接更新它,如果,区间的值都是1了,那么必须直接返回。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include <stdlib.h> 5 #define lson (cur << 1) 6 #defi 阅读全文
posted @ 2012-10-02 22:09 芒果布丁 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=3397 线段树,区间合并。 节点记录的信息如下: int l, r, c; // 区间左端点,右端点,长度 int lsum1, rsum1, msum1; // 左连续1长度,右连续1长度,区间最长连续1长度 int lsum0, rsum0, msum0; // 左连续0长度,右连续0长度,区间最长连续0长度 int sum; // 区间1的个数 题目许多更新询问操作都是比较熟悉的了。 这道题对于01反转操作我是这样做的:从上面列出来的节点信息... 阅读全文
posted @ 2012-10-02 20:00 芒果布丁 阅读(214) 评论(0) 推荐(0) 编辑