数据结构
文章平均质量分 81
dark_world_
勤奋好学,积极进取,乐观向上
展开
-
HDU 4605 Magic Ball Game 树状数组
题目大意很简单。有一颗树(10^5结点),所有结点要么没有子结点,要么有两个子结点。然后每个结点都有一个重量值,根结点是1然后有一个球,从结点1开始往子孙结点走。每碰到一个结点,有三种情况如果此球重量等于该结点重量,球就停下了如果此球重量小于该结点重量,则分别往左右儿子走的可能都是1/2如果此球重量大于该结点重量,则走向左儿子的概率是1/8,右儿子的转载 2014-07-22 01:05:06 · 417 阅读 · 0 评论 -
poj 2886 Who Gets the Most Candies?
N 个小孩围成一圈,他们被顺时针编号为 1 到 N。每个小孩手中有一个卡片,上面有一个非 0 的数字,游戏从第 K 个小孩开始,他告诉其他小孩他卡片上的数字并离开这个圈,他卡片上的数字 A 表明了下一个离开的小孩,如果 A 是大于 0 的,则下个离开的是左手边第 A 个,如果是小于 0 的,则是右手边的第 -A 个小孩。游戏将直到所有小孩都离开,在游戏中,第 p 个离开的小孩将得到 F(p) 个糖原创 2014-08-06 18:06:09 · 415 阅读 · 0 评论 -
一个写的比较好的trie图
/*39abacaaacbacdbbbccbaddbdbcaaacacadccaadcaccaadcdddcdaddbdddaccadcdbadaabcbdbdabcccbbbdcaaadbdbaabaaaacdcdabaaacdddcaadbdddcdcaaccdbbabacabbcdbbaacacdacbbcbdbadcbcbbadcdabdbbacddbab原创 2014-08-03 09:38:32 · 555 阅读 · 0 评论 -
树状数组:第K大值(上一篇的原文 勿喷 勿嘲)
以POJ 2985为例,具体的写在程序里。思路都是基于二分的思想。下面是(LogN)^2的方法/* 题意:某人养了很多猫,他会把一些猫合并成一组,并且会询问第k大组有几只猫 算法:处理集合用并查集,动态更新第K值用树状数组,具体的看注释 2011-07-21 19:59*/#include #define MAXN 300000int a[MA转载 2014-08-01 16:42:46 · 447 阅读 · 0 评论 -
树状数组:第K大值
转载勿喷,只为自己以后好找一点。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。原文:转载 2014-08-01 16:37:58 · 2721 阅读 · 0 评论 -
最近公共祖先问题
最近公共祖先(Least Common Ancestors)问题是面试中经常出现的一个问题,这种问题变种很多,解法也很多。最近公共祖先问题的定义如下:对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。另一种理解方式是把T理解为一个无向无环图,而LCA(T,u,v)即u到v的最短路上深度最小的点。例如,对于下转载 2014-08-06 19:18:27 · 765 阅读 · 0 评论 -
O(n) 求 最长回文子串
今天在博客上看到的,感觉很厉害,很好的样子,不喜wu转载 2014-08-01 16:42:43 · 398 阅读 · 0 评论 -
poj2985线段树求第k大的数(并查集)
The k-th Largest GroupTime Limit: 2000MS Memory Limit: 131072KTotal Submissions: 7255 Accepted: 2335DescriptionNewman likes playing with cats. He possesses lots原创 2014-08-01 16:02:34 · 1096 阅读 · 1 评论 -
trie图
#include#include#include#include#define INF 2000000000#define max(a,b) (a)>(b)?(a):(b)#define read(a) scanf("%d",&a);#define reads(s) scanf("%s",s);#define ouput(a) printf("%d\n",a);#define原创 2014-07-28 19:43:02 · 466 阅读 · 0 评论 -
LA3938Ray, Pass me the Dishes, LA 3938 , 线段树,区间查询
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1939来自:刘汝佳大白书P201.解题思路:机关一棵线段树,此中每个结点保护三个值,记录最大前缀和,最大后缀和最大连气儿和。原创 2014-08-03 12:56:33 · 615 阅读 · 0 评论 -
ZOJ2334 Monkey King 左偏树+并查集
有一n个猴子,每个猴子有一个战斗力,如果x和y不认识那么x会找他认识的猴子中战斗力最高的猴子与y认识的猴子中战斗力最高的猴子打一架,然后两只打架的猴子战斗力减半,然后x认得所有猴子就和y认识的所有猴子认识了,下次就不打架了。。。。。然后要我们输出打完架之后,在这个新的团体中战斗力最高的猴子的战斗力。要快速查找最大值,然后要合并两个堆,那就选用左偏树。因为我用了pop操作转载 2014-07-27 00:23:55 · 493 阅读 · 0 评论 -
poj2528Mayor's posters(线段树)
最近此题根本没有什么卡点,从昨天晚上开始原创 2014-07-26 19:14:03 · 519 阅读 · 0 评论 -
线段树的题目
点击打开链接转载 2014-07-24 20:12:56 · 560 阅读 · 0 评论 -
最近公共祖先LCA Tarjan算法
这篇博客写的非常不错,我就是看这个学会的。第一次写最近公共祖先问题,用的邻接表指针。对于一棵有根树,就会有父亲结点,祖先结点,当然最近公共祖先就是这两个点所有的祖先结点中深度最大的一个结点。 0 | 1 / \ 2 3比如说在这里,如果0为根的话,那么1是2和3的父亲结点,转载 2014-08-06 19:14:24 · 522 阅读 · 0 评论