上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166区间求和问题~~~代码如下: 1 #include <stdio.h> 2 #include <string.h> 3 #define N 50002 4 #define L(x) ((x)<<1) 5 #define R(x) ((x)<<1|1) 6 7 typedef struct 8 { 9 int lson, rson; 10 int val; 11 } seg_tree; 12 13 seg_tree s[N<<2]; 1 阅读全文
posted @ 2012-09-03 19:15 山路水桥 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394区间求和问题,但是用暴力方法也能通过,线段树50MS可以解决,暴力要250多MS,这就是算法的魅力所在~~~线段树代码: 1 #include <stdio.h> 2 #define L(x) ((x) << 1) 3 #define R(x) ((x) << 1 | 1) 4 #define N 5001 5 6 typedef struct 7 { 8 int lson, rson; 9 int val;10 } seg_tree;11 seg_tree 阅读全文
posted @ 2012-09-03 19:13 山路水桥 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698属于区间染色与区间求和问题,用线段树解决~~~代码如下: 1 #include <stdio.h> 2 #define N 300002 3 #define LL(x) ((x)<<1) 4 #define RR(x) ((x)<<1|1) 5 6 typedef struct 7 { 8 int lson, rson; 9 int val;10 } seg_tree;11 12 seg_tree s[N];13 14 void build(int left 阅读全文
posted @ 2012-09-03 19:09 山路水桥 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 线段树//zoj 1610 线段覆盖//poj 2777 线段覆盖//poj 2528 需要离散化,建树不同,需要处理不同->注意这组数据 3 1 10 1 3 6 10 the ans is 3.//hdu 1754 求区间最大值//hdu 1166 求区间和//hdu 1698 成段更新//poj 3468 成段更新//ural 1019 覆盖加统计最长同一个颜色//zoj 2301 和上一题差不多,但是这个染色染的是点,注意染色为空的状况//poj 3264 水题,寻找区间最大最小值//poj 1151 线段树+离散化求矩形面积并//poj 1177 矩形周长并//poj 3277 阅读全文
posted @ 2012-09-03 09:38 山路水桥 阅读(1714) 评论(0) 推荐(1) 编辑
摘要: 原文转自:http://www.cppblog.com/MatoNo1/archive/2011/04/17/144390.aspxKMP:给出两个字符串A(称为模板串)和B(称为子串),长度分别为lenA和lenB,要求在线性时间内,对于每个A[i](0k,所以又有A[i..p]==B[i-k..... 阅读全文
posted @ 2012-09-03 01:02 山路水桥 阅读(9128) 评论(2) 推荐(4) 编辑
摘要: 原文转自:http://blog.csdn.net/dgq8211/article/details/7580971在一些情况下,我们可能需要把一个字符串中的数字提取出来,这时候如果自己写函数就太麻烦了,c语言标准库中有一些弄好的函数供我们使用。现在我们来一起学习一下吧。1、atoi(char* bu... 阅读全文
posted @ 2012-09-02 12:23 山路水桥 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 原文转自:http://blog.csdn.net/dgq8211/article/details/7495448在处理一些关于区间模型的问题时,常常会遇到处理前缀和(即从1到x的和)的问题。这类问题常规解法有两种:1、直接存储原数组,修改元素O(1),取前缀和O(n)。2、直接存储前缀和,修改元素O(n),取前缀和O(1)。但是如果当修改元素和取前缀和操作都比较大的时候,这两种方法就都不能用了。怎么办呢?我们可以用另外一种解法:树状数组。其修改元素和取前缀和的复杂度均为O(logn)。如图所示,红色矩形表示的数组c[ ]就是树状数组。这里,c[i] 表示 A[i-2^k+1] 到 A[i] 阅读全文
posted @ 2012-09-02 12:19 山路水桥 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 原文转自:http://blog.csdn.net/dgq8211/article/details/7407753先从书上把定义抄下来:一棵二叉树,记为 T (a,b),参数 a,b表示该节点表示区间[a,b)。区间的长度b-a 记为 L。递归定义 T[a,b]:若 L>1 :[a, (a+b)/2]为 T 的左儿子,[(a+b) /2,b]为 T 的右儿子。若 L=1 :T 为一个叶子节点。区间[1, 10]的线段树表示方法如下:这里需要注意一点,图中一共有9个叶子节点,也就是说,这棵树只能代表9个点的数据,也就是[1,9]区间的数据。所以,我们在对待线段树区间的时候,可以理解为[a, 阅读全文
posted @ 2012-09-02 11:49 山路水桥 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 原文转自:http://blog.csdn.net/lhshaoren/article/details/7897736主要处理问题:线段树:区间处理,一般需要对整个区间执行相同的操作,时间复杂度O(log(n))优先队列:堆实现,找出最小或最大元素,或者第k小或第k大元素,一般区间内元素个数不变,只... 阅读全文
posted @ 2012-09-02 11:39 山路水桥 阅读(741) 评论(0) 推荐(1) 编辑
摘要: 1 函数名: strcat 2 功 能: 字符串拼接函数 3 用 法: char *strcat(char *destin, char *source); 4 程序例: 5 #include 6 #include 7 int main(void) 8 { 9 ... 阅读全文
posted @ 2012-09-02 11:02 山路水桥 阅读(349) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 15 下一页