POJ解题报告
文章平均质量分 81
xkey
AC
展开
-
poj 1442 第K小数(输入的数可能有重复)
题目意思很简单直接拿样例来解释吧7 43 1 -4 2 8 -1000 21 2 6 6输入 n = 7 m =4,然后第一行输入n个数,然后另一行输入m个数index = 11:输出n个数中前1个数中的第Index(1)小值index=22:输出n个数中前2个数中的第index(2)小值index=36:输出n个数中前6个数中的第index(3)小值原创 2011-10-29 00:57:27 · 1649 阅读 · 0 评论 -
poj 2892 随机平衡二叉树的解法
这种题就是标准的模板题,只要一个Treap上去就AC了,所以没有什么价值,唯一的价值就是用来学习Treap前驱和后继函数在动态数据中的应用。首先解释下题目意思:输入n和m,你表示数轴的长度,当然这里的数轴是从1开始的正整数,m表示接下来有m个操作。D x: The x-th village was destroyed. 就是摧毁数轴上的x值Q x: The Army comma原创 2011-10-27 20:47:08 · 1582 阅读 · 0 评论 -
线段树成段更新操作及Lazy思想(POJ3468解题报告)
就直接那POJ上面的例题来说吧,http://poj.org/problem?id=3468。此题题意很好懂: 给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c。需要用到线段树的,update:成段增减,query:区间求和介绍Lazy思想:lazy-tag思想,记录每一个线段树节点的变化值,当这部分线段的一致原创 2011-11-03 20:37:30 · 12772 阅读 · 3 评论 -
区间第K大数——划分树(POJ2104解题报告)
百度百科:划分树是一种基于线段树的数据结构。主要用于快速求出(在log(n)的时间复杂度内)序列区间的第k大值。划分树的基本思想就是对于某个区间,把它划分成两个子区间,左边区间的数小于右边区间的数。查找的时候通过记录进入左子树的数的个数,确定下一个查找区间,最后范围缩小到1,就找到了。建树划分树建树的时间复杂度和线段树不同,划分树是O(nlogn),划分树的建树依赖一个排好序的数组原创 2011-11-04 21:05:58 · 4994 阅读 · 5 评论 -
poj3667经典线段树合并操作
题意:N间空房子,M次操作,接下来M行,每行先输入一个整数a,a=1时再输入一个数b,查询N间房子里面是否有b间连续的空房子,如果有返回最左边的空房间编号,如果a=2,接着输入两个数b,c,表示将[b,c]区间所有房间清空。直接上代码吧,没什么好说的,合并操作在上一篇已经讲过了,上题是这题的加强版#include #include #include using namespace原创 2011-11-05 16:22:34 · 3821 阅读 · 2 评论 -
有向图强连通分量(Kosaraju算法)+POJ 2762解题报告
Kosaraju_Algorithm: step1:对原图G进行深度优先遍历,记录每个节点的离开时间。 step2:选择具有最晚离开时间的顶点,对反图GT进行遍历,删除能够遍历到的顶点,这些顶点构成一个强连通分量。 step3:如果还有顶点没有删除,继续step2,否则算法结束。这算法我不会证明其正确性,具体可以参见严蔚敏的《数据结构C语言版》和《算法导论》,里面都原创 2011-11-11 22:04:37 · 2132 阅读 · 0 评论