01 2015 档案
摘要:treap通过左右旋维护了一个二叉查找树,根据随机的优先级建立满足优先级大根堆的二叉查找树,在实践中有不错的食府,code也简单。 cogs1829 普通平衡树 题目大意:进行插入、删除、名次、前驱后继。 思路:前面的三种操作都很普通,前驱后继有两种做法(非常不正统吧。。。):1)找到这个数的名次,
阅读全文
摘要:通过前几天的一次模拟赛,初次见识到了堆的用处,虽然stl里有相应的结构,但不如自己写的灵活性高、速度快。下面附上几个练习。第三题:有n个函数,每一个函数有一个效果值,这n个函数是环形排列的,然后要求从n个函数中选出m个不相邻的函数使其效果值之和最大。思路:这个题在测试的时候直接放弃了,想写一个深搜,...
阅读全文
摘要:先简单的了解一下,双向广搜很好理解,就是从两端一起搜,如果遇到之前已经搜到过的状态,就相当于已经有解了,这样就会节省一半的内存和时间,并且代码复杂度并不高。只需要在正常的基础上多开一个域,保存这个点是从起始状态还是终止状态拓展的。当然双向广搜中状态的判断需要一些技巧,现在还没有总结出什么。 八数码问
阅读全文
摘要:第一题:给定nm的矩阵,每个格子内有一个数值,要求从第一行到第n行的没一个格子都能到的路线上最大值的最小值。思路:一开始写了一个裸裸的深搜,但是tle了(当时自己以为不会。。。)。后来听说二分答案,然后就有了一点思路。可以找到所有数值中的最大值和最小值,然后对于mid为标准,比mid小的格子可以走,...
阅读全文