问题:根节点到叶子结点的所有权值和分析:从根节点遍历,若遍历到叶子结点,则sum+其路径的所有权值和/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * Tree...
分类:
其他好文 时间:
2014-08-06 21:59:32
阅读次数:
184
Luck and Love
Problem Description
世界上上最远的距离不是相隔天涯海角
而是我在你面前
可你却不知道我爱你
―― 张小娴
前段日子,枫冰叶子给Wiskey做了个征婚启事,聘礼达到500万哦,天哪,可是天文数字了啊,不知多少MM蜂拥而至,顿时万人空巷,连扫地的大妈都来凑热闹来了。―_―|||
由于人数太多,W...
分类:
其他好文 时间:
2014-08-06 19:26:52
阅读次数:
300
1.二叉树的相关算法的实现(链表)。
#include
#include
#define NULL 0
typedef struct tree
{
int data;
struct tree *left, *right;
}ElemBT;
void create_btree(ElemBT *root, int list[], int n) /*n表示list数组中元素的个数*/
{...
分类:
其他好文 时间:
2014-08-06 12:00:01
阅读次数:
183
1.树是一种数据结构,树的一些相关的术语:
结点的度:一个结点的后继结点的个数。
树的度:树中度值最大的结点的度被称为树的度。
树的深度:树的层次数。
分支结点:度值大于0的结点,分支结点至少含有一个后继,分支结点也称为非终端结点。
叶子结点:树中的度值为0的结点。
双亲结点:树中某个结点的前驱结点,也成为父节点。
子女结点:树中某结点的后继结点。
兄弟结点:树中同一层的结点。...
分类:
其他好文 时间:
2014-08-05 19:34:40
阅读次数:
262
本题乍看像是线段树之类的区间操作,不过因为只是需要查找ip的前缀,故此其实是使用Trie来做。
这里的Trie使用到了Delete函数,这是个Trie函数中最难的函数了,当然要使用数组记录的方法水掉,也是可以的。这里不水,给出delete函数。
考点难点:
1 Trie的操作函数的灵活运用,主要难点是delete函数的灵活运用
2 在叶子节点所有的group id, 删除的时候要注意,不...
分类:
其他好文 时间:
2014-08-05 11:13:09
阅读次数:
296
Nice boat大意:给你一个区间,每次可以进行两种操作,1:把区间中的数全都变成x 2:把区间中大于x的数变成gcd(a[i], x),最后输出序列。思路:线段树成段更行,用num数组的叶子存储数据,节点当作lazy来使用。 1 #include 2 const int maxn = 1000....
分类:
其他好文 时间:
2014-08-04 23:55:48
阅读次数:
292
1、min和max为奇数,否则min和max非叶子,还可以向下拓展
2、根据满二叉树的性质,x的左右子树的个数都为2的k次方减1个节点
3、根据二叉树搜索的性质,左子树编号的区间为[min,x-1],右子树的编号区间为[x+1,max]
由此得出min=x-(2^k-1),max=x+(2^k-1)
lowbit的作用,计算x对应的二进制数中第一个1的位置k,返回权值2k。
这个函数的作用就是求出t这个数的二进制存储下,最高的非0bit所表示的大小。
即满足2^k<=t的最大的2^k,其中k为非负整数。...
分类:
其他好文 时间:
2014-08-04 21:45:28
阅读次数:
294
基本上是标准的寻找前缀的问题,只需要insert和search函数就可以了。
我这里主要是修改一下n的记录方法,这里的n代表的不是叶子节点的标志,而是有多少单词经过了这条路径的标志。
然后是查找需要查找的前缀单词,如果没有找到,就返回0,表示没有单词以这个前缀单词为前缀,如果找到,直接返回n就是答案了。因为有n个单词经过了这条路径。
查找效率是常数。
使用静态分配空间的办法。
#...
分类:
其他好文 时间:
2014-08-04 21:40:28
阅读次数:
239
Nice boat
大意:给你一个区间,每次可以进行两种操作,1:把区间中的数全都变成x 2:把区间中大于x的数变成gcd(a[i], x),最后输出序列。
思路:线段树成段更行,用num数组的叶子存储数据,节点当作lazy来使用。
#include
const int maxn = 100005;
int num[maxn<<2];
int gc...
分类:
其他好文 时间:
2014-08-04 21:34:18
阅读次数:
235
翻译火星语,不过火星语也是使用英文单词的,就是把一个单词对应到另外一个单词。
可以使用map, 使用二分,方法很多。
不过最快的应该都是Trie解法了。
把火星语挂在Trie树中,然后在叶子节点增加一个string容器,装英语单词。
查找的时候,找到了出现在Trie中的火星语,就返回string就可以了。
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-08-04 11:02:47
阅读次数:
234