摘要: 用线段树水过,3s多。。。不说了,上代码:#include <stdio.h>#define inf 0x7fffffff#define N 50010struct node{ int l, r; int min, max;}node[N*4];int num[N], nmax, nmin;void creat(int t, int l, int r){ node[t].l = l; node[t].r = r; node[t].min = inf; node[t].max = -inf; if(l == r - 1) { if(num[l] > num[r]) { node 阅读全文
posted @ 2011-08-09 20:59 AC_Von 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2008-10-27Done 位运算+宽搜)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)(2008-08-29Done)(poj1860,poj3259,poj1062,poj2253,poj1125 阅读全文
posted @ 2011-08-09 19:30 AC_Von 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 经典的线段树题目,包含了线段树的插入,更新,计数,操作过程如下:1、[0,8000]递归建立线段树,初始时每段的颜色为-1,表示无色;2、每次输入,更新对应线段的颜色;3、在区间[0, 8000]上统计颜色>=0的区间(即为已经图色的区间),将所对应的颜色映射到数组col[]中;4、对col[]进行简单的操作,输出得到的颜色和所对应的区间数;下面以50 4 40 3 13 4 20 2 20 2 3为例演示一下过程,这里简化一下,我只建立[0, 4]的线段树:代码+注释:#include <stdio.h>#include <stdlib.h>#include & 阅读全文
posted @ 2011-08-09 10:45 AC_Von 阅读(205) 评论(0) 推荐(2) 编辑