适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集基本原理及要点:对 于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这 个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的...
分类:
其他好文 时间:
2015-11-14 12:33:20
阅读次数:
219
1、前言 字符串的几大主要算法都多少提及过,现在来讲讲一个称不上什么算法, 但是非常常用的东西——字符串Hash。2、Hash的概念 Hash更详细的概念不多说了,它的作用在于能够对复杂的状态进行简单的表达,更方便的用于判重。在搜索的时候,或是动规的时候,都有过类似的做法。在实际应用中,也是非常.....
分类:
其他好文 时间:
2015-10-24 21:51:34
阅读次数:
216
用stack保存数字,set判重。dfs一遍就好。(或者编码成int,快排+unique#include#include#include#include#include#include#include#include#include#include#includeusing namespace st...
分类:
其他好文 时间:
2015-10-18 16:47:04
阅读次数:
141
bfs就好,取最早的毁坏时间。就一组数据,初始化都没有,直接用dist[][]状态判重。#include#include#include#include#include#include#include#include#include#include#includeusing namespace st...
分类:
其他好文 时间:
2015-10-18 16:46:11
阅读次数:
228
有个2*N+1的线性的棋盘,开始时最左边全是白,右边全是黑,中间一个空格。目标是黑白全部互换。求输出最少步数的操作的棋子的下标。并且要字典序最小的。980ms险过。不判重700ms能过。我居然多此一举的用map判重。/*ID: modengd1PROG: shuttleLANG: C++*/#inc...
分类:
其他好文 时间:
2015-10-02 23:47:01
阅读次数:
259
原题是这份导刊模拟的第二题不给你们完整的样例数据,因为我丢了=。=开工。 *以下用到的变量名: Size:地图宽度 我想了三种写法1.同时移动,排序之后判重,时间复杂度是O(Size*nlog2n) 但是由于判重太难写,放弃2.同时移动,哈希判重,使用 h(k) = (x[k] * Size + y...
分类:
其他好文 时间:
2015-09-24 22:30:37
阅读次数:
307
对输入数据判重,使用Map,将对象作为Key,使用map的containsKey方法来着重是否是重复记录。正常的处理流程:(1)将输入的数据封装成对象(2)判重,将没有重复的数据存储到map(3)对没有重复的数据,进行校验(4)将部分输入的数据,转换成数据库存储时的格式问题:因为对已经存储在map中...
分类:
其他好文 时间:
2015-09-20 22:05:12
阅读次数:
156
有五个不透明的圆盘,每个圆盘上有不超过五个扇形缺口,这五个圆盘重叠在一起,每个都有一个固定的速度旋转,问经过最短多久,光线可以穿过这些圆盘。世道模拟题,但是一开始一直在纠结如何判断这个状态已经枚举过了,也就是判重的问题,后来才知道不用判重,当旋转次数超过360次,就会回到起始状态。/*ID: mod...
分类:
其他好文 时间:
2015-09-20 00:26:57
阅读次数:
145
常规的宽搜,每个方向上都一路走到’X‘为止如果不加以判重,理论上是对的,但是会做大量无用的计算,要么超时要么数组越界,只能得30分不过,这里的判重并不是指每个点只能经过一次,而是指在一层搜索中,每个点只能经过一次,搜索下一层时,判重数组要清空程序如下:program ex1026;type node...
分类:
其他好文 时间:
2015-09-10 19:08:24
阅读次数:
225
题意是给出一个N,将所有分母小于N的非负分数排序输出。/*ID: modengd1PROG: frac1LANG: C++*/#include #include #include #include using namespace std;bool vis[261][261];//判重,枚举出来之后的...
分类:
其他好文 时间:
2015-09-02 00:12:06
阅读次数:
167