HDU6203 补题LCA复习+dfs序

这个题目其实算是贪心吧,感觉自己贪心有点菜,这几天要把贪心练一下了 建树,dfs什么的就不说了,这里主要讲下思路 就是建完树后,给你两个点 然后求出他们的lca,将这两个点u,v和lca,dlca(lca点的深度)存在一个结构体数组中 然后将这个数组按深度从大到小排序 接着遍历这个数组 ...

2017-09-14 20:33:31

阅读数 266

评论数 0

poj1151(线段树+扫描线)

题目就是矩阵面积并这里我就不多说了 这道题的精髓在于运用线段树来求边长,扫描线的思想反而没有线段树重要 直接上代码+注释#include #include #include #include #define maxn 1000 using namespace std; class no...

2017-05-06 15:48:29

阅读数 152

评论数 0

HZAU校赛PJ补题(二维并查集)

这道题在现场做的时候莫名其妙的wa了,后来李维宇解释说因为题目数据的问题必须用%s 题解用的是DFS但是我个人并不喜欢DFS感觉太暴力了没有算法的美感。这道题我是用二维并查集做的算是写一个二维并查集的模板吧 题目传送门:http://acm.hzau.edu.cn/problem.php?id=1...

2017-04-30 14:50:47

阅读数 183

评论数 0

并查集算法回顾

并查集就是有关集合的合并和查找算法 对于每个集合来说我们都有一个标志 这个集合中的所有元素都指向这个标志 我们可以定义a的标志为Set【a】 我们就可以利用这些标志来进行集合的合并和查找 在最开始的时候要memset(Set,-1,sizeof(Set)); 至于为什么后面可以自己体会 现在...

2017-03-07 19:46:16

阅读数 229

评论数 0

哈弗曼树

哈弗曼树是能保证权值*路径的和最小的数据结构 哈弗曼树的构造是建立在小根堆以上的 首先先建立一个小根堆 每次取出小根堆的两个顶端元素 再把两个元素相加放入小根堆中直到只剩一个元素 ans就是最小权值之和 long long ans=0; while (len>1) {...

2017-02-19 15:48:19

阅读数 236

评论数 0

堆结构

堆这种数据结构呢,就是一种能保证堆顶元素是最大元素,或最小元素的一种数据结构,维护时间为log2 N 下面介绍我们就拿最大堆来说,不失一般性 首先说堆的结构:堆的结构就一个要求,根节点大于他的两个子节点 首先说元素的删除,我们只能删除堆顶元素 我们删除堆顶元素后将堆尾元素heap【...

2017-02-16 16:32:51

阅读数 420

评论数 0

看懂树状数组

恩,今天一下午都花在搞树状数组上面去了吧。现在才认清楚树状数组的一些东西。 我们先看树状数组的结构 如图 他的规律就是c[x]永远有一条线连到a[x],c[x]之前绝对没有连到a[x]的线                       c[2^n]=a[1]到a[2^n]的和        ...

2017-02-10 20:51:52

阅读数 251

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭