
【数据结构】
文章平均质量分 66
x314542916
不怕比我聪明的人,只怕比我聪明但比我还要努力的人
展开
-
【解题报告】 HDU 1102 Constructing Roads -- 并查集 最小生成树 Prime算法
题目连接:HDU 1102题目大意:自己看。代码写的很长,主要想练二叉堆来实现优先队列,毕竟学了就得用上。// HDU 1102 Constructing Roads -- 并查集 最小生成树 Prime算法// 二叉堆 -- 用于优先队列的实现// 完全二叉树的 I 结点的 两个 child 是 I*2 and I*2+1 .// 完全二叉树的 I 结点的 father 是 I/2原创 2012-08-02 22:27:53 · 1059 阅读 · 0 评论 -
HDU 1251 统计难题 -- 字典树
1251 ( 统计难题 )#include #include #include #include #include #include using namespace std;const int MAX_26 = 26;const int MAX_TREE = 390010;#define FORi_26 for(int i=0;i<MAX_26;i++)struct Tr原创 2013-04-26 10:28:09 · 677 阅读 · 0 评论 -
【解题报告】 HDU 2795 Billboard -- 线段树的应用
题目大意:有一个广告板,告诉我们尺寸(即高度宽度),我们要贴广告,广告的尺寸规定为1*w,我们每次从最左上面开始贴,当给出的广告不够贴时,移到下一行贴。输出当前广告贴在第几行。题目连接:-> HDU 2795 思路大意:拿高度来当"线段"进行拆分,每次更新一下贴完之后所剩余的长度,并顺便输出所在行即可。接下来计算一下充当 线段树的数组 的宽度:这个题目中广告版的高度范围比较大,1原创 2012-10-01 20:32:57 · 1115 阅读 · 0 评论 -
【线段树】线段树入门之入门
线段树的入门级 总结 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。 使用线段树可以原创 2012-08-06 23:47:52 · 48089 阅读 · 36 评论 -
优先队列 懒省事的小明
这个题于是目 一看就知道是用优先队列写,正好最近手写了一个优先队列,就不用stl了。很快代码写完了,测试过了…立马提交,居然悲剧的wa了,于是我左想又想,想了几组特殊数据,改了还程序可还是wa…………我郁闷了这么典型的模板怎么会错…于是我百度了几个代码,发现居然是用long long写的,看来这个题目要超int,于是果断改好了,又交了一次,可还是wa了……………………………没有道理了…然后我反复查原创 2012-08-01 07:36:05 · 832 阅读 · 0 评论 -
优先队列的实现--二叉堆
// 二叉堆 -- 用于优先队列的实现// 完全二叉树的 I 结点的 两个 child 是 I*2 and I*2+1 . --二叉树的性质// 完全二叉树的 I 结点的 father 是 I/2 . --二叉树的性质// 队列结构 -> head -> queue -> bottom -> // head in, bottom out// /*test data 一共10个数字原创 2012-07-31 01:24:57 · 1745 阅读 · 0 评论 -
【解题报告】 HDU 1698 Just a Hook 线段树 (线段替换) 插线问线 + 延时标记
// HDU 1698 Just a Hook 线段树(线段替换)插线插线+ 延时标记// 延时标记:起一个缓冲的作用,第一次遇到的更新先不更新到底,等下一次更新或者查询的时候再更新到位。// 因此线段树结构中的区间和 并不是实际值。// 此处的更新到位是指 本次更新或查询所需的最后一层(因为我查的不是点,而是区间),并非到最底层// 延时标记下沉的前提:线段树结构中遇到了一个区间完全的包原创 2012-08-10 12:12:54 · 1139 阅读 · 0 评论 -
【解题报告】 NYOJ 116 士兵杀敌(二) 线段树 单点更新求区间和
题目连接:NYOJ 116这个是线段树的基本操作----更新和查询,和上一个题一样,只不过一个是求最大值一个是求区间和,看来线段树在更新和查询的时候对时间的消耗很小很小。这个属于基础水题,我就不说什么了。如果不知道线段树的基本操作,请移步线段树的基本操作// NYOJ 116 士兵杀敌(二) 线段树 --单点更新求区间和// #include #include #inclu原创 2012-08-07 00:07:29 · 2442 阅读 · 1 评论 -
【解题报告】 HDU 1754 I Hate It 线段树 单点更新
题目连接:HDU 1754这个是线段树的基本操作----更新和查询,属于基础水题,我就不说什么了。如果不知道线段树的基本操作,请移步线段树的基本操作// HDU 1754 I Hate It 线段树 -- 单点更新// 有效结点: 20w// 深度达到:(lg20w)/(lg2) +1 .= 18.61 .= 19// 其完全二叉树 总结点 个数为: (1<<19) - 1原创 2012-08-06 23:51:27 · 2225 阅读 · 3 评论 -
计算表达式的值
// 计算表达式的值,// 两个栈一个放运算符(char),一个放数据(double)// 先读进整个表达式,然后处理(处理采用量化,用二维数组使占用多位的数字只占用一位),// 显然表达式不会被破坏// 优先级的定义如果是 后面的符号优先级大于前面的符号优先级 则入栈// 否则出栈进行计算,计算完后再入栈// 如果遇到'(' ')'的情况则消除括号,')'不会入栈// 最后算法结束原创 2012-08-04 18:47:43 · 2276 阅读 · 0 评论 -
【解题报告】HDU 4638 Group - 树状数组 + 求一段区间连续数字的段数
/* http://acm.hdu.edu.cn/showproblem.php?pid=4638 HDU 4638 Group - 树状数组 题意: 求一段区间连续数字的段数 [1 3 5 4 2] 询问(2,4)区间则3,5,4为连续序列输出 1 解法: 定义 线段 为 连续的数字段 定义 改变量deta 为 添加一个数字之后区间中线段增加或者减少了几个(其实就是-1原创 2013-08-19 15:31:40 · 1393 阅读 · 0 评论